|
@@ -388,11 +388,10 @@ static void bio_integrity_verify_fn(struct work_struct *work)
|
|
bool __bio_integrity_endio(struct bio *bio)
|
|
bool __bio_integrity_endio(struct bio *bio)
|
|
{
|
|
{
|
|
struct blk_integrity *bi = bdev_get_integrity(bio->bi_bdev);
|
|
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 &&
|
|
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);
|
|
INIT_WORK(&bip->bip_work, bio_integrity_verify_fn);
|
|
queue_work(kintegrityd_wq, &bip->bip_work);
|
|
queue_work(kintegrityd_wq, &bip->bip_work);
|
|
return false;
|
|
return false;
|