* [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, §or, &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