]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
block: prepare generation / verification helpers for fs usage
authorChristoph Hellwig <hch@lst.de>
Mon, 23 Feb 2026 13:20:04 +0000 (05:20 -0800)
committerJens Axboe <axboe@kernel.dk>
Mon, 9 Mar 2026 13:47:02 +0000 (07:47 -0600)
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 <hch@lst.de>
Reviewed-by: Anuj Gupta <anuj20.g@samsung.com>
Reviewed-by: Kanchan Joshi <joshi.k@samsung.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Tested-by: Anuj Gupta <anuj20.g@samsung.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/bio-integrity-auto.c
block/blk.h
block/t10-pi.c

index b64c71a7fc8232976991003f248924d4c4d6ae84..ebd17f47e0f9ea25f5d31d4a2a24b867f02814ec 100644 (file)
@@ -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;
 }
index f6053e9dd2aac11eabcc72ad1de10f305cbb5b3b..c5b2115b9ea43ae059167a48ce4aa79ce4e90ac9 100644 (file)
@@ -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);
 
index 0c4ed97021460a0dbd05b1ccb56cb6c989988082..d27be6041fd311a68a435100c650641648022827 100644 (file)
@@ -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)