diff options
author | Sagi Grimberg <sagig@mellanox.com> | 2014-08-13 14:49:31 +0300 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-08-21 20:37:47 -0500 |
commit | 16f408dc6b1c87f5e3a767626df09c1399c6bf70 (patch) | |
tree | 03aefafe7a02a7778af7b44e326f12c4521905ff /block/bio-integrity.c | |
parent | 274a5843ff2f08a89464589d90c64eb65f2c0847 (diff) | |
download | op-kernel-dev-16f408dc6b1c87f5e3a767626df09c1399c6bf70.zip op-kernel-dev-16f408dc6b1c87f5e3a767626df09c1399c6bf70.tar.gz |
block: Fix BUG_ON when pi errors occur
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@mellanox.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/bio-integrity.c')
-rw-r--r-- | 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 bc423f7b..f14b4ab 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -520,7 +520,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; } |