diff --git a/drivers/md/md.c b/drivers/md/md.c index a7faf615308533ae9774ebbc343d35f70b70b118..f051cdeb9ac2a7ab6f1c2b3ee9e622b5297957bc 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c @@ -8721,7 +8721,8 @@ static void md_end_io_acct(struct bio *bio) struct md_io_acct *md_io_acct = bio->bi_private; struct bio *orig_bio = md_io_acct->orig_bio; - orig_bio->bi_status = bio->bi_status; + if (bio->bi_status && !orig_bio->bi_status) + orig_bio->bi_status = bio->bi_status; bio_end_io_acct(orig_bio, md_io_acct->start_time); bio_put(bio);