diff --git a/block/bio.c b/block/bio.c index 94d0f4798b5bfb99e437448f72fd60090dc63e07..da05350dfba28d38522561786169bdfee90b6bf9 100644 --- a/block/bio.c +++ b/block/bio.c @@ -314,7 +314,7 @@ static struct bio *__bio_chain_endio(struct bio *bio) { struct bio *parent = bio->bi_private; - if (!parent->bi_status) + if (bio->bi_status && !parent->bi_status) parent->bi_status = bio->bi_status; bio_put(bio); return parent;