Loading block/bio.c +8 −8 Original line number Diff line number Diff line Loading @@ -296,14 +296,19 @@ void bio_reset(struct bio *bio) } EXPORT_SYMBOL(bio_reset); static void bio_chain_endio(struct bio *bio) static struct bio *__bio_chain_endio(struct bio *bio) { struct bio *parent = bio->bi_private; if (!parent->bi_error) parent->bi_error = bio->bi_error; bio_endio(parent); bio_put(bio); return parent; } static void bio_chain_endio(struct bio *bio) { bio_endio(__bio_chain_endio(bio)); } /* Loading Loading @@ -1753,12 +1758,7 @@ void bio_endio(struct bio *bio) * pointers also disables gcc's sibling call optimization. */ if (bio->bi_end_io == bio_chain_endio) { struct bio *parent = bio->bi_private; if (!parent->bi_error) parent->bi_error = bio->bi_error; bio_put(bio); bio = parent; bio = __bio_chain_endio(bio); } else { if (bio->bi_end_io) bio->bi_end_io(bio); Loading Loading
block/bio.c +8 −8 Original line number Diff line number Diff line Loading @@ -296,14 +296,19 @@ void bio_reset(struct bio *bio) } EXPORT_SYMBOL(bio_reset); static void bio_chain_endio(struct bio *bio) static struct bio *__bio_chain_endio(struct bio *bio) { struct bio *parent = bio->bi_private; if (!parent->bi_error) parent->bi_error = bio->bi_error; bio_endio(parent); bio_put(bio); return parent; } static void bio_chain_endio(struct bio *bio) { bio_endio(__bio_chain_endio(bio)); } /* Loading Loading @@ -1753,12 +1758,7 @@ void bio_endio(struct bio *bio) * pointers also disables gcc's sibling call optimization. */ if (bio->bi_end_io == bio_chain_endio) { struct bio *parent = bio->bi_private; if (!parent->bi_error) parent->bi_error = bio->bi_error; bio_put(bio); bio = parent; bio = __bio_chain_endio(bio); } else { if (bio->bi_end_io) bio->bi_end_io(bio); Loading