Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

nvmet: ignore discard return value

__blkdev_issue_discard() always returns 0, making the error checking
in nvmet_bdev_discard_range() dead code.

Kill the function nvmet_bdev_discard_range() and call
__blkdev_issue_discard() directly from nvmet_bdev_execute_discard(),
since no error handling is needed anymore for __blkdev_issue_discard()
call.

Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Chaitanya Kulkarni and committed by
Jens Axboe
38d12f15 699fcfb6

+7 -21
+7 -21
drivers/nvme/target/io-cmd-bdev.c
··· 363 363 return 0; 364 364 } 365 365 366 - static u16 nvmet_bdev_discard_range(struct nvmet_req *req, 367 - struct nvme_dsm_range *range, struct bio **bio) 368 - { 369 - struct nvmet_ns *ns = req->ns; 370 - int ret; 371 - 372 - ret = __blkdev_issue_discard(ns->bdev, 373 - nvmet_lba_to_sect(ns, range->slba), 374 - le32_to_cpu(range->nlb) << (ns->blksize_shift - 9), 375 - GFP_KERNEL, bio); 376 - if (ret && ret != -EOPNOTSUPP) { 377 - req->error_slba = le64_to_cpu(range->slba); 378 - return errno_to_nvme_status(req, ret); 379 - } 380 - return NVME_SC_SUCCESS; 381 - } 382 - 383 366 static void nvmet_bdev_execute_discard(struct nvmet_req *req) 384 367 { 368 + struct nvmet_ns *ns = req->ns; 385 369 struct nvme_dsm_range range; 386 370 struct bio *bio = NULL; 371 + sector_t nr_sects; 387 372 int i; 388 - u16 status; 373 + u16 status = NVME_SC_SUCCESS; 389 374 390 375 for (i = 0; i <= le32_to_cpu(req->cmd->dsm.nr); i++) { 391 376 status = nvmet_copy_from_sgl(req, i * sizeof(range), &range, ··· 378 393 if (status) 379 394 break; 380 395 381 - status = nvmet_bdev_discard_range(req, &range, &bio); 382 - if (status) 383 - break; 396 + nr_sects = le32_to_cpu(range.nlb) << (ns->blksize_shift - 9); 397 + __blkdev_issue_discard(ns->bdev, 398 + nvmet_lba_to_sect(ns, range.slba), nr_sects, 399 + GFP_KERNEL, &bio); 384 400 } 385 401 386 402 if (bio) {