]> Git Repo - linux.git/blobdiff - drivers/nvme/target/io-cmd-bdev.c
Merge tag 'for-5.12/drivers-2021-02-17' of git://git.kernel.dk/linux-block
[linux.git] / drivers / nvme / target / io-cmd-bdev.c
index 125dde3f410ee711de2e90009eb76f0c3e0d5255..3d9a5d3ed9cdbfeed8f1f9ffea49adf28b675510 100644 (file)
@@ -256,8 +256,7 @@ static void nvmet_bdev_execute_rw(struct nvmet_req *req)
        if (is_pci_p2pdma_page(sg_page(req->sg)))
                op |= REQ_NOMERGE;
 
-       sector = le64_to_cpu(req->cmd->rw.slba);
-       sector <<= (req->ns->blksize_shift - 9);
+       sector = nvmet_lba_to_sect(req->ns, req->cmd->rw.slba);
 
        if (req->transfer_len <= NVMET_MAX_INLINE_DATA_LEN) {
                bio = &req->b.inline_bio;
@@ -333,7 +332,7 @@ static void nvmet_bdev_execute_flush(struct nvmet_req *req)
 
 u16 nvmet_bdev_flush(struct nvmet_req *req)
 {
-       if (blkdev_issue_flush(req->ns->bdev, GFP_KERNEL))
+       if (blkdev_issue_flush(req->ns->bdev))
                return NVME_SC_INTERNAL | NVME_SC_DNR;
        return 0;
 }
@@ -345,7 +344,7 @@ static u16 nvmet_bdev_discard_range(struct nvmet_req *req,
        int ret;
 
        ret = __blkdev_issue_discard(ns->bdev,
-                       le64_to_cpu(range->slba) << (ns->blksize_shift - 9),
+                       nvmet_lba_to_sect(ns, range->slba),
                        le32_to_cpu(range->nlb) << (ns->blksize_shift - 9),
                        GFP_KERNEL, 0, bio);
        if (ret && ret != -EOPNOTSUPP) {
@@ -414,8 +413,7 @@ static void nvmet_bdev_execute_write_zeroes(struct nvmet_req *req)
        if (!nvmet_check_transfer_len(req, 0))
                return;
 
-       sector = le64_to_cpu(write_zeroes->slba) <<
-               (req->ns->blksize_shift - 9);
+       sector = nvmet_lba_to_sect(req->ns, write_zeroes->slba);
        nr_sector = (((sector_t)le16_to_cpu(write_zeroes->length) + 1) <<
                (req->ns->blksize_shift - 9));
 
@@ -451,9 +449,6 @@ u16 nvmet_bdev_parse_io_cmd(struct nvmet_req *req)
                req->execute = nvmet_bdev_execute_write_zeroes;
                return 0;
        default:
-               pr_err("unhandled cmd %d on qid %d\n", cmd->common.opcode,
-                      req->sq->qid);
-               req->error_loc = offsetof(struct nvme_common_command, opcode);
-               return NVME_SC_INVALID_OPCODE | NVME_SC_DNR;
+               return nvmet_report_invalid_opcode(req);
        }
 }
This page took 0.033113 seconds and 4 git commands to generate.