On Mon, Nov 17, 2025 at 11:42:43PM -0800, Chaitanya Kulkarni wrote:
> Due to involvement of all the subsystem making it as an RFC, ideally
> it shuoldn't be an RFC.
I think best would be a series that drops error checking first,
and then changes the return type. That way we can maybe get all
the callers fixed up in this merge window and then drop the return
value after -rc1.
> gfp_mask)))
> *biop = bio_chain_and_submit(*biop, bio);
> - return 0;
> }
> EXPORT_SYMBOL(__blkdev_issue_discard);
>
> @@ -90,8 +89,8 @@ int blkdev_issue_discard(struct block_device *bdev,
> sector_t sector,
> int ret;
>
> blk_start_plug(&plug);
> - ret = __blkdev_issue_discard(bdev, sector, nr_sects, gfp_mask, &bio);
> - if (!ret && bio) {
> + __blkdev_issue_discard(bdev, sector, nr_sects, gfp_mask, &bio);
ret now needs to be initialized to 0 above.
> index 8d246b8ca604..f26010c46c33 100644
> --- a/drivers/nvme/target/io-cmd-bdev.c
> +++ b/drivers/nvme/target/io-cmd-bdev.c
> @@ -366,16 +366,11 @@ 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,
> + __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;
nvmet_bdev_discard_range can return void now.
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index b45eace879d7..e6078176f733 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -1346,7 +1346,7 @@ static int __submit_discard_cmd(struct f2fs_sb_info
> *sbi,
> if (time_to_inject(sbi, FAULT_DISCARD)) {
> err = -EIO;
> } else {
> - err = __blkdev_issue_discard(bdev,
> + __blkdev_issue_discard(bdev,
> SECTOR_FROM_BLOCK(start),
> SECTOR_FROM_BLOCK(len),
> GFP_NOFS, &bio);
Please fold the following 'if (err)' block directly into the injection
one, and either initialize err to 0, or use a direct return from that
block to skip the last branch in the function checking err.
> blk_finish_plug(&plug);
>
> - return error;
> + return 0;
Please drop the error return for xfs_discard_extents entirely.
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel