From: Christoph Hellwig Date: Mon, 23 Feb 2026 13:20:04 +0000 (-0800) Subject: block: prepare generation / verification helpers for fs usage X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3f00626832a9f85fc5a04b25898157a6d43cb236;p=thirdparty%2Fkernel%2Flinux.git block: prepare generation / verification helpers for fs usage Return the status from verify instead of directly stashing it in the bio, and rename the helpers to use the usual bio_ prefix for things operating on a bio. Signed-off-by: Christoph Hellwig Reviewed-by: Anuj Gupta Reviewed-by: Kanchan Joshi Reviewed-by: Martin K. Petersen Reviewed-by: Darrick J. Wong Tested-by: Anuj Gupta Signed-off-by: Jens Axboe --- diff --git a/block/bio-integrity-auto.c b/block/bio-integrity-auto.c index b64c71a7fc823..ebd17f47e0f9e 100644 --- a/block/bio-integrity-auto.c +++ b/block/bio-integrity-auto.c @@ -39,7 +39,7 @@ static void bio_integrity_verify_fn(struct work_struct *work) 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); } @@ -100,7 +100,7 @@ void bio_integrity_prep(struct bio *bio, unsigned int action) /* 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; } diff --git a/block/blk.h b/block/blk.h index f6053e9dd2aac..c5b2115b9ea43 100644 --- a/block/blk.h +++ b/block/blk.h @@ -699,8 +699,10 @@ int bdev_open(struct block_device *bdev, blk_mode_t mode, void *holder, 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); diff --git a/block/t10-pi.c b/block/t10-pi.c index 0c4ed97021460..d27be6041fd31 100644 --- a/block/t10-pi.c +++ b/block/t10-pi.c @@ -372,7 +372,7 @@ static void ext_pi_type1_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); @@ -404,7 +404,7 @@ void blk_integrity_generate(struct bio *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); @@ -439,11 +439,11 @@ void blk_integrity_verify_iter(struct bio *bio, struct bvec_iter *saved_iter) } 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)