diff options
author | Christoph Hellwig <hch@lst.de> | 2017-08-09 17:47:27 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2017-08-10 04:24:36 +0200 |
commit | f86e28c4dc8d475cb82ca8d018daaa1564534aad (patch) | |
tree | 1e967aba87ed8f786ddd7f8e65b2a4173bf702e7 /block/bio-integrity.c | |
parent | bio-integrity: Fix regression if profile verify_fn is NULL (diff) | |
download | linux-f86e28c4dc8d475cb82ca8d018daaa1564534aad.tar.xz linux-f86e28c4dc8d475cb82ca8d018daaa1564534aad.zip |
bio-integrity: only verify integrity on the lowest stacked driver
This gets us back to the behavior in 4.12 and earlier.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Fixes: 7c20f116 ("bio-integrity: stop abusing bi_end_io")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/bio-integrity.c')
-rw-r--r-- | block/bio-integrity.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/block/bio-integrity.c b/block/bio-integrity.c index 0fd9604974da..9b1ea478577b 100644 --- a/block/bio-integrity.c +++ b/block/bio-integrity.c @@ -388,11 +388,10 @@ static void bio_integrity_verify_fn(struct work_struct *work) bool __bio_integrity_endio(struct bio *bio) { struct blk_integrity *bi = bdev_get_integrity(bio->bi_bdev); + struct bio_integrity_payload *bip = bio_integrity(bio); if (bio_op(bio) == REQ_OP_READ && !bio->bi_status && - bi->profile->verify_fn) { - struct bio_integrity_payload *bip = bio_integrity(bio); - + (bip->bip_flags & BIP_BLOCK_INTEGRITY) && bi->profile->verify_fn) { INIT_WORK(&bip->bip_work, bio_integrity_verify_fn); queue_work(kintegrityd_wq, &bip->bip_work); return false; |