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)))
 
 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);
 }
                    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;
 
 }
 
 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);
 
 
        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);