When getting a pi error we get to bio_integrity_end_io with bi_remaining already decremented to 0 where we will eventually need to call bio_endio with restored original bio completion handler. Calling bio_endio invokes a BUG_ON(). We should call bio_endio_nodec instead, like what is done in bio_integrity_verify_fn. Signed-off-by: Sagi Grimberg <sagig@xxxxxxxxxxxx> --- block/bio-integrity.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 9e24106..90d40f9 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -526,7 +526,7 @@ void bio_integrity_endio(struct bio *bio, int error) */ if (error) { bio->bi_end_io = bip->bip_end_io; - bio_endio(bio, error); + bio_endio_nodec(bio, error); return; } -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html