OSDN Git Service

nvme-pci: tidy up nvme_map_data
authorChristoph Hellwig <hch@lst.de>
Tue, 5 Mar 2019 12:59:02 +0000 (05:59 -0700)
committerChristoph Hellwig <hch@lst.de>
Fri, 5 Apr 2019 06:07:58 +0000 (08:07 +0200)
Remove two pointless local variables, remove ret assignment that is
never used, move the use_sgl initialization closer to where it is used.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <keith.busch@intel.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
drivers/nvme/host/pci.c

index 82aa5cb..c1eecde 100644 (file)
@@ -840,10 +840,7 @@ static blk_status_t nvme_map_data(struct nvme_dev *dev, struct request *req,
                struct nvme_command *cmnd)
 {
        struct nvme_iod *iod = blk_mq_rq_to_pdu(req);
-       struct request_queue *q = req->q;
-       enum dma_data_direction dma_dir = rq_data_dir(req) ?
-                       DMA_TO_DEVICE : DMA_FROM_DEVICE;
-       blk_status_t ret = BLK_STS_IOERR;
+       blk_status_t ret = BLK_STS_RESOURCE;
        int nr_mapped;
 
        if (blk_rq_nr_phys_segments(req) == 1) {
@@ -865,25 +862,21 @@ static blk_status_t nvme_map_data(struct nvme_dev *dev, struct request *req,
        iod->sg = mempool_alloc(dev->iod_mempool, GFP_ATOMIC);
        if (!iod->sg)
                return BLK_STS_RESOURCE;
-
-       iod->use_sgl = nvme_pci_use_sgls(dev, req);
-
        sg_init_table(iod->sg, blk_rq_nr_phys_segments(req));
-       iod->nents = blk_rq_map_sg(q, req, iod->sg);
+       iod->nents = blk_rq_map_sg(req->q, req, iod->sg);
        if (!iod->nents)
                goto out;
 
-       ret = BLK_STS_RESOURCE;
-
        if (is_pci_p2pdma_page(sg_page(iod->sg)))
                nr_mapped = pci_p2pdma_map_sg(dev->dev, iod->sg, iod->nents,
-                                         dma_dir);
+                                             rq_dma_dir(req));
        else
                nr_mapped = dma_map_sg_attrs(dev->dev, iod->sg, iod->nents,
-                                            dma_dir,  DMA_ATTR_NO_WARN);
+                                            rq_dma_dir(req), DMA_ATTR_NO_WARN);
        if (!nr_mapped)
                goto out;
 
+       iod->use_sgl = nvme_pci_use_sgls(dev, req);
        if (iod->use_sgl)
                ret = nvme_pci_setup_sgls(dev, req, &cmnd->rw, nr_mapped);
        else