]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
btrfs: constify parameters of write_eb_member() and its users
authorDavid Sterba <dsterba@suse.com>
Mon, 20 May 2024 18:49:18 +0000 (20:49 +0200)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Jul 2024 13:33:19 +0000 (15:33 +0200)
Reported by 'gcc -Wcast-qual', the argument from which write_extent_buffer()
reads data to write to the eb should be const. In addition the const
needs to be also added to __write_extent_buffer() local buffers.

All callers of write_eb_member() can now be updated to use const for the
input buffer structure or type.

Reviewed-by: Boris Burkov <boris@bur.io>
Reviewed-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/accessors.h
fs/btrfs/extent_io.c

index c60f0e7f768ac479560434737876a44e2315f5f8..6c3deaa3e878d8408f8330af27fb2197c055f549 100644 (file)
@@ -48,8 +48,8 @@ static inline void put_unaligned_le8(u8 val, void *p)
                            offsetof(type, member),                     \
                            sizeof_field(type, member)))
 
-#define write_eb_member(eb, ptr, type, member, result) (\
-       write_extent_buffer(eb, (char *)(result),                       \
+#define write_eb_member(eb, ptr, type, member, source) (               \
+       write_extent_buffer(eb, (const char *)(source),                 \
                           ((unsigned long)(ptr)) +                     \
                            offsetof(type, member),                     \
                            sizeof_field(type, member)))
@@ -353,7 +353,7 @@ static inline void btrfs_tree_block_key(const struct extent_buffer *eb,
 
 static inline void btrfs_set_tree_block_key(const struct extent_buffer *eb,
                                            struct btrfs_tree_block_info *item,
-                                           struct btrfs_disk_key *key)
+                                           const struct btrfs_disk_key *key)
 {
        write_eb_member(eb, item, struct btrfs_tree_block_info, key, key);
 }
@@ -446,7 +446,7 @@ void btrfs_node_key(const struct extent_buffer *eb,
                    struct btrfs_disk_key *disk_key, int nr);
 
 static inline void btrfs_set_node_key(const struct extent_buffer *eb,
-                                     struct btrfs_disk_key *disk_key, int nr)
+                                     const struct btrfs_disk_key *disk_key, int nr)
 {
        unsigned long ptr;
 
@@ -512,7 +512,7 @@ static inline void btrfs_item_key(const struct extent_buffer *eb,
 }
 
 static inline void btrfs_set_item_key(struct extent_buffer *eb,
-                                     struct btrfs_disk_key *disk_key, int nr)
+                                     const struct btrfs_disk_key *disk_key, int nr)
 {
        struct btrfs_item *item = btrfs_item_nr(eb, nr);
 
index 4867ce19cccc5385c82cf89a057f50aabb89a00a..17a3808e5b01fa91772493a49308236fdfe0b961 100644 (file)
@@ -4606,7 +4606,7 @@ static void __write_extent_buffer(const struct extent_buffer *eb,
        size_t cur;
        size_t offset;
        char *kaddr;
-       char *src = (char *)srcv;
+       const char *src = (const char *)srcv;
        unsigned long i = get_eb_folio_index(eb, start);
        /* For unmapped (dummy) ebs, no need to check their uptodate status. */
        const bool check_uptodate = !test_bit(EXTENT_BUFFER_UNMAPPED, &eb->bflags);