Re: [PATCH V3 5/6] f2fs: ignore discard return value

Chao Yu
2025-11-26T02:47:42Z

On 11/25/25 07:48, Chaitanya Kulkarni wrote:
> __blkdev_issue_discard() always returns 0, making the error assignment
> in __submit_discard_cmd() dead code.
>
> Initialize err to 0 and remove the error assignment from the
> __blkdev_issue_discard() call to err. Move fault injection code into
> already present if branch where err is set to -EIO.
>
> This preserves the fault injection behavior while removing dead error
> handling.
>
> 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 <ckulkarnilinux@gmail.com>
> ---
> fs/f2fs/segment.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c
> index b45eace879d7..22b736ec9c51 100644
> --- a/fs/f2fs/segment.c
> +++ b/fs/f2fs/segment.c
> @@ -1343,15 +1343,9 @@ static int __submit_discard_cmd(struct f2fs_sb_info *sbi,
>
> dc->di.len += len;
>
> + err = 0;
> if (time_to_inject(sbi, FAULT_DISCARD)) {
> err = -EIO;
> - } else {
> - err = __blkdev_issue_discard(bdev,
> - SECTOR_FROM_BLOCK(start),
> - SECTOR_FROM_BLOCK(len),
> - GFP_NOFS, &bio);
> - }
> - if (err) {
> spin_lock_irqsave(&dc->lock, flags);
> if (dc->state == D_PARTIAL)
> dc->state = D_SUBMIT;
> @@ -1360,6 +1354,8 @@ static int __submit_discard_cmd(struct f2fs_sb_info *sbi,
> break;
> }
>
> + __blkdev_issue_discard(bdev, SECTOR_FROM_BLOCK(start),
> + SECTOR_FROM_BLOCK(len), GFP_NOFS, &bio);

Oh, wait, bio can be NULL? Then below f2fs_bug_on() will trigger panic or warning.

Thanks,

> f2fs_bug_on(sbi, !bio);
>
> /*