container_of(work, struct bio_integrity_data, work);
struct bio *bio = bid->bio;
- blk_integrity_verify_iter(bio, &bid->saved_bio_iter);
+ bio->bi_status = bio_integrity_verify(bio, &bid->saved_bio_iter);
bio_integrity_finish(bid);
bio_endio(bio);
}
/* Auto-generate integrity metadata if this is a write */
if (bio_data_dir(bio) == WRITE && bip_should_check(&bid->bip))
- blk_integrity_generate(bio);
+ bio_integrity_generate(bio);
else
bid->saved_bio_iter = bio->bi_iter;
}
const struct blk_holder_ops *hops, struct file *bdev_file);
int bdev_permission(dev_t dev, blk_mode_t mode, void *holder);
-void blk_integrity_generate(struct bio *bio);
-void blk_integrity_verify_iter(struct bio *bio, struct bvec_iter *saved_iter);
+void bio_integrity_generate(struct bio *bio);
+blk_status_t bio_integrity_verify(struct bio *bio,
+ struct bvec_iter *saved_iter);
+
void blk_integrity_prepare(struct request *rq);
void blk_integrity_complete(struct request *rq, unsigned int nr_bytes);
}
}
-void blk_integrity_generate(struct bio *bio)
+void bio_integrity_generate(struct bio *bio)
{
struct blk_integrity *bi = blk_get_integrity(bio->bi_bdev->bd_disk);
struct bio_integrity_payload *bip = bio_integrity(bio);
}
}
-void blk_integrity_verify_iter(struct bio *bio, struct bvec_iter *saved_iter)
+blk_status_t bio_integrity_verify(struct bio *bio, struct bvec_iter *saved_iter)
{
struct blk_integrity *bi = blk_get_integrity(bio->bi_bdev->bd_disk);
struct bio_integrity_payload *bip = bio_integrity(bio);
}
kunmap_local(kaddr);
- if (ret) {
- bio->bi_status = ret;
- return;
- }
+ if (ret)
+ return ret;
}
+
+ return BLK_STS_OK;
}
void blk_integrity_prepare(struct request *rq)