public inbox for linux-block@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH V4 0/3] block: ignore discard return value
@ 2026-02-11 20:44 Chaitanya Kulkarni
  2026-02-11 20:44 ` [PATCH V4 1/3] md: " Chaitanya Kulkarni
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Chaitanya Kulkarni @ 2026-02-11 20:44 UTC (permalink / raw)
  To: linan122, song, yukuai, hch, sagi, axboe
  Cc: linux-raid, linux-nvme, linux-block, Chaitanya Kulkarni

Hi,

This version has remaining patches from the original series to change
__blkdev_issue_discard() return type from int to void.

First two patches make md and nvmet drivers ignore the return value of
__blkdev_issue_discard() call and last patch changes the actual function
return type from int to void.

-ck

V3->V4:-

* Rebase md and nvmet patch on latest linux-block/for-next
* Add a last patch to change the return type of
  __blkdev_issue_discard() from int to void now that all call sites
  are fixed.

Chaitanya Kulkarni (3):
  md: ignore discard return value
  nvmet: ignore discard return value
  block: change return type to void

 block/blk-lib.c                   |  3 +--
 drivers/md/md.c                   |  4 ++--
 drivers/nvme/target/io-cmd-bdev.c | 28 +++++++---------------------
 include/linux/blkdev.h            |  2 +-
 4 files changed, 11 insertions(+), 26 deletions(-)

-- 
2.39.5


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH V4 1/3] md: ignore discard return value
  2026-02-11 20:44 [PATCH V4 0/3] block: ignore discard return value Chaitanya Kulkarni
@ 2026-02-11 20:44 ` Chaitanya Kulkarni
  2026-02-11 20:44 ` [PATCH V4 2/3] nvmet: " Chaitanya Kulkarni
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Chaitanya Kulkarni @ 2026-02-11 20:44 UTC (permalink / raw)
  To: linan122, song, yukuai, hch, sagi, axboe
  Cc: linux-raid, linux-nvme, linux-block, Chaitanya Kulkarni,
	Martin K . Petersen, Johannes Thumshirn

__blkdev_issue_discard() always returns 0, making all error checking at
call sites dead code.

Simplify md to only check !discard_bio by ignoring the
__blkdev_issue_discard() value.

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>
---
 drivers/md/md.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/md/md.c b/drivers/md/md.c
index 59cd303548de..89c9e63a9139 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -9179,8 +9179,8 @@ void md_submit_discard_bio(struct mddev *mddev, struct md_rdev *rdev,
 {
 	struct bio *discard_bio = NULL;
 
-	if (__blkdev_issue_discard(rdev->bdev, start, size, GFP_NOIO,
-			&discard_bio) || !discard_bio)
+	__blkdev_issue_discard(rdev->bdev, start, size, GFP_NOIO, &discard_bio);
+	if (!discard_bio)
 		return;
 
 	bio_chain(discard_bio, bio);
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V4 2/3] nvmet: ignore discard return value
  2026-02-11 20:44 [PATCH V4 0/3] block: ignore discard return value Chaitanya Kulkarni
  2026-02-11 20:44 ` [PATCH V4 1/3] md: " Chaitanya Kulkarni
@ 2026-02-11 20:44 ` Chaitanya Kulkarni
  2026-02-11 20:44 ` [PATCH V4 3/3] block: change return type to void Chaitanya Kulkarni
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: Chaitanya Kulkarni @ 2026-02-11 20:44 UTC (permalink / raw)
  To: linan122, song, yukuai, hch, sagi, axboe
  Cc: linux-raid, linux-nvme, linux-block, Chaitanya Kulkarni,
	Martin K . Petersen, Johannes Thumshirn

__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>
---
 drivers/nvme/target/io-cmd-bdev.c | 28 +++++++---------------------
 1 file changed, 7 insertions(+), 21 deletions(-)

diff --git a/drivers/nvme/target/io-cmd-bdev.c b/drivers/nvme/target/io-cmd-bdev.c
index 0103815542d4..f15d1c213bc6 100644
--- a/drivers/nvme/target/io-cmd-bdev.c
+++ b/drivers/nvme/target/io-cmd-bdev.c
@@ -363,29 +363,14 @@ u16 nvmet_bdev_flush(struct nvmet_req *req)
 	return 0;
 }
 
-static u16 nvmet_bdev_discard_range(struct nvmet_req *req,
-		struct nvme_dsm_range *range, struct bio **bio)
-{
-	struct nvmet_ns *ns = req->ns;
-	int ret;
-
-	ret = __blkdev_issue_discard(ns->bdev,
-			nvmet_lba_to_sect(ns, range->slba),
-			le32_to_cpu(range->nlb) << (ns->blksize_shift - 9),
-			GFP_KERNEL, bio);
-	if (ret && ret != -EOPNOTSUPP) {
-		req->error_slba = le64_to_cpu(range->slba);
-		return errno_to_nvme_status(req, ret);
-	}
-	return NVME_SC_SUCCESS;
-}
-
 static void nvmet_bdev_execute_discard(struct nvmet_req *req)
 {
+	struct nvmet_ns *ns = req->ns;
 	struct nvme_dsm_range range;
 	struct bio *bio = NULL;
+	sector_t nr_sects;
 	int i;
-	u16 status;
+	u16 status = NVME_SC_SUCCESS;
 
 	for (i = 0; i <= le32_to_cpu(req->cmd->dsm.nr); i++) {
 		status = nvmet_copy_from_sgl(req, i * sizeof(range), &range,
@@ -393,9 +378,10 @@ static void nvmet_bdev_execute_discard(struct nvmet_req *req)
 		if (status)
 			break;
 
-		status = nvmet_bdev_discard_range(req, &range, &bio);
-		if (status)
-			break;
+		nr_sects = le32_to_cpu(range.nlb) << (ns->blksize_shift - 9);
+		__blkdev_issue_discard(ns->bdev,
+				nvmet_lba_to_sect(ns, range.slba), nr_sects,
+				GFP_KERNEL, &bio);
 	}
 
 	if (bio) {
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH V4 3/3] block: change return type to void
  2026-02-11 20:44 [PATCH V4 0/3] block: ignore discard return value Chaitanya Kulkarni
  2026-02-11 20:44 ` [PATCH V4 1/3] md: " Chaitanya Kulkarni
  2026-02-11 20:44 ` [PATCH V4 2/3] nvmet: " Chaitanya Kulkarni
@ 2026-02-11 20:44 ` Chaitanya Kulkarni
  2026-02-12 10:15 ` [PATCH V4 0/3] block: ignore discard return value Christoph Hellwig
  2026-02-12 11:27 ` Jens Axboe
  4 siblings, 0 replies; 6+ messages in thread
From: Chaitanya Kulkarni @ 2026-02-11 20:44 UTC (permalink / raw)
  To: linan122, song, yukuai, hch, sagi, axboe
  Cc: linux-raid, linux-nvme, linux-block, Chaitanya Kulkarni

Now that all the callers of __blkdev_issue_discard() have been changed
to ignore its return value, change its return type from int to void.

Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
---
 block/blk-lib.c        | 3 +--
 include/linux/blkdev.h | 2 +-
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/block/blk-lib.c b/block/blk-lib.c
index 0be3acdc3eb5..3213afc7f0d5 100644
--- a/block/blk-lib.c
+++ b/block/blk-lib.c
@@ -60,7 +60,7 @@ struct bio *blk_alloc_discard_bio(struct block_device *bdev,
 	return bio;
 }
 
-int __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
+void __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
 		sector_t nr_sects, gfp_t gfp_mask, struct bio **biop)
 {
 	struct bio *bio;
@@ -68,7 +68,6 @@ int __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
 	while ((bio = blk_alloc_discard_bio(bdev, &sector, &nr_sects,
 			gfp_mask)))
 		*biop = bio_chain_and_submit(*biop, bio);
-	return 0;
 }
 EXPORT_SYMBOL(__blkdev_issue_discard);
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 2ae4c45e4959..5ac4c7f2c2c0 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -1258,7 +1258,7 @@ extern void blk_io_schedule(void);
 
 int blkdev_issue_discard(struct block_device *bdev, sector_t sector,
 		sector_t nr_sects, gfp_t gfp_mask);
-int __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
+void __blkdev_issue_discard(struct block_device *bdev, sector_t sector,
 		sector_t nr_sects, gfp_t gfp_mask, struct bio **biop);
 int blkdev_issue_secure_erase(struct block_device *bdev, sector_t sector,
 		sector_t nr_sects, gfp_t gfp);
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH V4 0/3] block: ignore discard return value
  2026-02-11 20:44 [PATCH V4 0/3] block: ignore discard return value Chaitanya Kulkarni
                   ` (2 preceding siblings ...)
  2026-02-11 20:44 ` [PATCH V4 3/3] block: change return type to void Chaitanya Kulkarni
@ 2026-02-12 10:15 ` Christoph Hellwig
  2026-02-12 11:27 ` Jens Axboe
  4 siblings, 0 replies; 6+ messages in thread
From: Christoph Hellwig @ 2026-02-12 10:15 UTC (permalink / raw)
  To: Chaitanya Kulkarni
  Cc: linan122, song, yukuai, hch, sagi, axboe, linux-raid, linux-nvme,
	linux-block

Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>

And maybe Jens can pick this up for 7.0 so that we have a clean
slate for the new merge window?


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH V4 0/3] block: ignore discard return value
  2026-02-11 20:44 [PATCH V4 0/3] block: ignore discard return value Chaitanya Kulkarni
                   ` (3 preceding siblings ...)
  2026-02-12 10:15 ` [PATCH V4 0/3] block: ignore discard return value Christoph Hellwig
@ 2026-02-12 11:27 ` Jens Axboe
  4 siblings, 0 replies; 6+ messages in thread
From: Jens Axboe @ 2026-02-12 11:27 UTC (permalink / raw)
  To: linan122, song, yukuai, hch, sagi, Chaitanya Kulkarni
  Cc: linux-raid, linux-nvme, linux-block


On Wed, 11 Feb 2026 12:44:35 -0800, Chaitanya Kulkarni wrote:
> This version has remaining patches from the original series to change
> __blkdev_issue_discard() return type from int to void.
> 
> First two patches make md and nvmet drivers ignore the return value of
> __blkdev_issue_discard() call and last patch changes the actual function
> return type from int to void.
> 
> [...]

Applied, thanks!

[1/3] md: ignore discard return value
      commit: 699fcfb6cb80a9df67fd2086a1c930d196d709f2
[2/3] nvmet: ignore discard return value
      commit: 38d12f15c4772b5383b1249b2afb0d206a430f0f
[3/3] block: change return type to void
      commit: 453daece381e60df20da16c49ccc6a9bc5c6515a

Best regards,
-- 
Jens Axboe




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-02-12 11:27 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-11 20:44 [PATCH V4 0/3] block: ignore discard return value Chaitanya Kulkarni
2026-02-11 20:44 ` [PATCH V4 1/3] md: " Chaitanya Kulkarni
2026-02-11 20:44 ` [PATCH V4 2/3] nvmet: " Chaitanya Kulkarni
2026-02-11 20:44 ` [PATCH V4 3/3] block: change return type to void Chaitanya Kulkarni
2026-02-12 10:15 ` [PATCH V4 0/3] block: ignore discard return value Christoph Hellwig
2026-02-12 11:27 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox