From: Sahitya Tummala Date: Wed, 15 Apr 2020 04:05:54 +0000 (+0530) Subject: f2fs: report the discard cmd errors properly X-Git-Tag: rel_imx_5.10.35_2.0.0-somdevices.0~1966^2~47 X-Git-Url: https://git.somdevices.com/?a=commitdiff_plain;h=3fa6a8c5b55d063c6a759e0b354f9d7fc09ffbc0;p=linux.git f2fs: report the discard cmd errors properly In case a discard_cmd is split into several bios, the dc->error must not be overwritten once an error is reported by a bio. Also, move it under dc->lock. Signed-off-by: Sahitya Tummala Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index 90c75822fef6..728ff6e316ac 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1029,9 +1029,9 @@ static void f2fs_submit_discard_endio(struct bio *bio) struct discard_cmd *dc = (struct discard_cmd *)bio->bi_private; unsigned long flags; - dc->error = blk_status_to_errno(bio->bi_status); - spin_lock_irqsave(&dc->lock, flags); + if (!dc->error) + dc->error = blk_status_to_errno(bio->bi_status); dc->bio_ref--; if (!dc->bio_ref && dc->state == D_SUBMIT) { dc->state = D_DONE;