The patch e9307e3deb52 was supposed to be an optimization, but it actually
increases the size of the function verity_verify_io (by 112 bytes), so
let's revert it.

Signed-off-by: Mikulas Patocka <[email protected]>

---
 drivers/md/dm-verity-target.c |   21 +++++----------------
 1 file changed, 5 insertions(+), 16 deletions(-)

Index: linux-2.6/drivers/md/dm-verity-target.c
===================================================================
--- linux-2.6.orig/drivers/md/dm-verity-target.c        2024-02-06 
14:46:59.000000000 +0100
+++ linux-2.6/drivers/md/dm-verity-target.c     2024-02-06 14:50:50.000000000 
+0100
@@ -565,22 +565,11 @@ static int verity_verify_io(struct dm_ve
        bool is_zero;
        struct dm_verity *v = io->v;
        struct bvec_iter start;
-       struct bvec_iter iter_copy;
-       struct bvec_iter *iter;
+       struct bvec_iter iter_copy = io->iter;
        struct crypto_wait wait;
        struct bio *bio = dm_bio_from_per_bio_data(io, v->ti->per_io_data_size);
        unsigned int b;
 
-       if (static_branch_unlikely(&use_tasklet_enabled) && io->in_tasklet) {
-               /*
-                * Copy the iterator in case we need to restart
-                * verification in a work-queue.
-                */
-               iter_copy = io->iter;
-               iter = &iter_copy;
-       } else
-               iter = &io->iter;
-
        for (b = 0; b < io->n_blocks; b++) {
                int r;
                sector_t cur_block = io->block + b;
@@ -588,7 +577,7 @@ static int verity_verify_io(struct dm_ve
 
                if (v->validated_blocks && bio->bi_status == BLK_STS_OK &&
                    likely(test_bit(cur_block, v->validated_blocks))) {
-                       verity_bv_skip_block(v, io, iter);
+                       verity_bv_skip_block(v, io, &iter_copy);
                        continue;
                }
 
@@ -603,7 +592,7 @@ static int verity_verify_io(struct dm_ve
                         * If we expect a zero block, don't validate, just
                         * return zeros.
                         */
-                       r = verity_for_bv_block(v, io, iter,
+                       r = verity_for_bv_block(v, io, &iter_copy,
                                                verity_bv_zero);
                        if (unlikely(r < 0))
                                return r;
@@ -615,8 +604,8 @@ static int verity_verify_io(struct dm_ve
                if (unlikely(r < 0))
                        return r;
 
-               start = *iter;
-               r = verity_for_io_block(v, io, iter, &wait);
+               start = iter_copy;
+               r = verity_for_io_block(v, io, &iter_copy, &wait);
                if (unlikely(r < 0))
                        return r;
 


Reply via email to