]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
dm vdo: Update code to use mem_is_zero
authorBruce Johnston <bjohnsto@redhat.com>
Mon, 15 Sep 2025 23:35:17 +0000 (19:35 -0400)
committerMikulas Patocka <mpatocka@redhat.com>
Tue, 23 Sep 2025 08:49:17 +0000 (10:49 +0200)
Remove function that would check if data was all zeroes. Use the
built-in kernel function mem_is_zero() instead.

Signed-off-by: Bruce Johnston <bjohnsto@redhat.com>
Signed-off-by: Matthew Sakai <msakai@redhat.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
drivers/md/dm-vdo/data-vio.c

index 810002747091f3e63e9cb35dbdac03e247f08476..262e11581f2dc859c0eb7b86d266b2edf58f5541 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/minmax.h>
 #include <linux/sched.h>
 #include <linux/spinlock.h>
+#include <linux/string.h>
 #include <linux/wait.h>
 
 #include "logger.h"
@@ -509,18 +510,6 @@ static void launch_data_vio(struct data_vio *data_vio, logical_block_number_t lb
        vdo_enqueue_completion(completion, VDO_DEFAULT_Q_MAP_BIO_PRIORITY);
 }
 
-static bool is_zero_block(char *block)
-{
-       int i;
-
-       for (i = 0; i < VDO_BLOCK_SIZE; i += sizeof(u64)) {
-               if (*((u64 *) &block[i]))
-                       return false;
-       }
-
-       return true;
-}
-
 static void copy_from_bio(struct bio *bio, char *data_ptr)
 {
        struct bio_vec biovec;
@@ -572,7 +561,7 @@ static void launch_bio(struct vdo *vdo, struct data_vio *data_vio, struct bio *b
                 * we acknowledge the bio.
                 */
                copy_from_bio(bio, data_vio->vio.data);
-               data_vio->is_zero = is_zero_block(data_vio->vio.data);
+               data_vio->is_zero = mem_is_zero(data_vio->vio.data, VDO_BLOCK_SIZE);
                data_vio->write = true;
        }
 
@@ -1459,7 +1448,7 @@ static void modify_for_partial_write(struct vdo_completion *completion)
                copy_from_bio(bio, data + data_vio->offset);
        }
 
-       data_vio->is_zero = is_zero_block(data);
+       data_vio->is_zero = mem_is_zero(data, VDO_BLOCK_SIZE);
        data_vio->read = false;
        launch_data_vio_logical_callback(data_vio,
                                         continue_data_vio_with_block_map_slot);