Function xfs_zone_alloc_and_submit() sets bio->bi_status and then it
calls bio_io_error(), which overwrites that value again.  Fix that by
completing the bio separately after setting bio->bi_status.

Signed-off-by: Andreas Gruenbacher <[email protected]>
---
 fs/xfs/xfs_zone_alloc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/fs/xfs/xfs_zone_alloc.c b/fs/xfs/xfs_zone_alloc.c
index ef7a931ebde5..bd6f3ef095cb 100644
--- a/fs/xfs/xfs_zone_alloc.c
+++ b/fs/xfs/xfs_zone_alloc.c
@@ -897,6 +897,9 @@ xfs_zone_alloc_and_submit(
 
 out_split_error:
        ioend->io_bio.bi_status = errno_to_blk_status(PTR_ERR(split));
+       bio_endio(&ioend->io_bio);
+       return;
+
 out_error:
        bio_io_error(&ioend->io_bio);
 }
-- 
2.52.0


Reply via email to