]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
btrfs: struct-funcs, constify readers
authorJeff Mahoney <jeffm@suse.com>
Thu, 29 Jun 2017 03:56:53 +0000 (21:56 -0600)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 28 Apr 2020 18:02:28 +0000 (19:02 +0100)
commit 1cbb1f454e5321e47fc1e6b233066c7ccc979d15 upstream.

We have reader helpers for most of the on-disk structures that use
an extent_buffer and pointer as offset into the buffer that are
read-only.  We should mark them as const and, in turn, allow consumers
of these interfaces to mark the buffers const as well.

No impact on code, but serves as documentation that a buffer is intended
not to be modified.

Signed-off-by: Jeff Mahoney <jeffm@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/btrfs/ctree.h
fs/btrfs/extent_io.c
fs/btrfs/extent_io.h
fs/btrfs/struct-funcs.c

index bfe92476e9d3fa692dbba081c9c80bfb6dd9dafe..291bd02704135e08a3660a8d0a60fd49dfa2934b 100644 (file)
@@ -2138,7 +2138,7 @@ struct btrfs_ioctl_defrag_range_args {
 #define BTRFS_INODE_ROOT_ITEM_INIT     (1 << 31)
 
 struct btrfs_map_token {
-       struct extent_buffer *eb;
+       const struct extent_buffer *eb;
        char *kaddr;
        unsigned long offset;
 };
@@ -2169,18 +2169,19 @@ static inline void btrfs_init_map_token (struct btrfs_map_token *token)
                           sizeof(((type *)0)->member)))
 
 #define DECLARE_BTRFS_SETGET_BITS(bits)                                        \
-u##bits btrfs_get_token_##bits(struct extent_buffer *eb, void *ptr,    \
-                              unsigned long off,                       \
-                              struct btrfs_map_token *token);          \
-void btrfs_set_token_##bits(struct extent_buffer *eb, void *ptr,       \
+u##bits btrfs_get_token_##bits(const struct extent_buffer *eb,         \
+                              const void *ptr, unsigned long off,      \
+                              struct btrfs_map_token *token);          \
+void btrfs_set_token_##bits(struct extent_buffer *eb, const void *ptr, \
                            unsigned long off, u##bits val,             \
                            struct btrfs_map_token *token);             \
-static inline u##bits btrfs_get_##bits(struct extent_buffer *eb, void *ptr, \
+static inline u##bits btrfs_get_##bits(const struct extent_buffer *eb, \
+                                      const void *ptr,                 \
                                       unsigned long off)               \
 {                                                                      \
        return btrfs_get_token_##bits(eb, ptr, off, NULL);              \
 }                                                                      \
-static inline void btrfs_set_##bits(struct extent_buffer *eb, void *ptr, \
+static inline void btrfs_set_##bits(struct extent_buffer *eb, void *ptr,\
                                    unsigned long off, u##bits val)     \
 {                                                                      \
        btrfs_set_token_##bits(eb, ptr, off, val, NULL);                        \
@@ -2192,7 +2193,8 @@ DECLARE_BTRFS_SETGET_BITS(32)
 DECLARE_BTRFS_SETGET_BITS(64)
 
 #define BTRFS_SETGET_FUNCS(name, type, member, bits)                   \
-static inline u##bits btrfs_##name(struct extent_buffer *eb, type *s)  \
+static inline u##bits btrfs_##name(const struct extent_buffer *eb,     \
+                                  const type *s)                       \
 {                                                                      \
        BUILD_BUG_ON(sizeof(u##bits) != sizeof(((type *)0))->member);   \
        return btrfs_get_##bits(eb, s, offsetof(type, member));         \
@@ -2203,7 +2205,8 @@ static inline void btrfs_set_##name(struct extent_buffer *eb, type *s,    \
        BUILD_BUG_ON(sizeof(u##bits) != sizeof(((type *)0))->member);   \
        btrfs_set_##bits(eb, s, offsetof(type, member), val);           \
 }                                                                      \
-static inline u##bits btrfs_token_##name(struct extent_buffer *eb, type *s, \
+static inline u##bits btrfs_token_##name(const struct extent_buffer *eb,\
+                                        const type *s,                 \
                                         struct btrfs_map_token *token) \
 {                                                                      \
        BUILD_BUG_ON(sizeof(u##bits) != sizeof(((type *)0))->member);   \
@@ -2218,9 +2221,9 @@ static inline void btrfs_set_token_##name(struct extent_buffer *eb,       \
 }
 
 #define BTRFS_SETGET_HEADER_FUNCS(name, type, member, bits)            \
-static inline u##bits btrfs_##name(struct extent_buffer *eb)           \
+static inline u##bits btrfs_##name(const struct extent_buffer *eb)     \
 {                                                                      \
-       type *p = page_address(eb->pages[0]);                           \
+       const type *p = page_address(eb->pages[0]);                     \
        u##bits res = le##bits##_to_cpu(p->member);                     \
        return res;                                                     \
 }                                                                      \
@@ -2232,7 +2235,7 @@ static inline void btrfs_set_##name(struct extent_buffer *eb,             \
 }
 
 #define BTRFS_SETGET_STACK_FUNCS(name, type, member, bits)             \
-static inline u##bits btrfs_##name(type *s)                            \
+static inline u##bits btrfs_##name(const type *s)                      \
 {                                                                      \
        return le##bits##_to_cpu(s->member);                            \
 }                                                                      \
@@ -2558,7 +2561,7 @@ static inline unsigned long btrfs_node_key_ptr_offset(int nr)
                sizeof(struct btrfs_key_ptr) * nr;
 }
 
-void btrfs_node_key(struct extent_buffer *eb,
+void btrfs_node_key(const struct extent_buffer *eb,
                    struct btrfs_disk_key *disk_key, int nr);
 
 static inline void btrfs_set_node_key(struct extent_buffer *eb,
@@ -2587,28 +2590,28 @@ static inline struct btrfs_item *btrfs_item_nr(int nr)
        return (struct btrfs_item *)btrfs_item_nr_offset(nr);
 }
 
-static inline u32 btrfs_item_end(struct extent_buffer *eb,
+static inline u32 btrfs_item_end(const struct extent_buffer *eb,
                                 struct btrfs_item *item)
 {
        return btrfs_item_offset(eb, item) + btrfs_item_size(eb, item);
 }
 
-static inline u32 btrfs_item_end_nr(struct extent_buffer *eb, int nr)
+static inline u32 btrfs_item_end_nr(const struct extent_buffer *eb, int nr)
 {
        return btrfs_item_end(eb, btrfs_item_nr(nr));
 }
 
-static inline u32 btrfs_item_offset_nr(struct extent_buffer *eb, int nr)
+static inline u32 btrfs_item_offset_nr(const struct extent_buffer *eb, int nr)
 {
        return btrfs_item_offset(eb, btrfs_item_nr(nr));
 }
 
-static inline u32 btrfs_item_size_nr(struct extent_buffer *eb, int nr)
+static inline u32 btrfs_item_size_nr(const struct extent_buffer *eb, int nr)
 {
        return btrfs_item_size(eb, btrfs_item_nr(nr));
 }
 
-static inline void btrfs_item_key(struct extent_buffer *eb,
+static inline void btrfs_item_key(const struct extent_buffer *eb,
                           struct btrfs_disk_key *disk_key, int nr)
 {
        struct btrfs_item *item = btrfs_item_nr(nr);
@@ -2644,8 +2647,8 @@ BTRFS_SETGET_STACK_FUNCS(stack_dir_name_len, struct btrfs_dir_item,
 BTRFS_SETGET_STACK_FUNCS(stack_dir_transid, struct btrfs_dir_item,
                         transid, 64);
 
-static inline void btrfs_dir_item_key(struct extent_buffer *eb,
-                                     struct btrfs_dir_item *item,
+static inline void btrfs_dir_item_key(const struct extent_buffer *eb,
+                                     const struct btrfs_dir_item *item,
                                      struct btrfs_disk_key *key)
 {
        read_eb_member(eb, item, struct btrfs_dir_item, location, key);
@@ -2653,7 +2656,7 @@ static inline void btrfs_dir_item_key(struct extent_buffer *eb,
 
 static inline void btrfs_set_dir_item_key(struct extent_buffer *eb,
                                          struct btrfs_dir_item *item,
-                                         struct btrfs_disk_key *key)
+                                         const struct btrfs_disk_key *key)
 {
        write_eb_member(eb, item, struct btrfs_dir_item, location, key);
 }
@@ -2665,8 +2668,8 @@ BTRFS_SETGET_FUNCS(free_space_bitmaps, struct btrfs_free_space_header,
 BTRFS_SETGET_FUNCS(free_space_generation, struct btrfs_free_space_header,
                   generation, 64);
 
-static inline void btrfs_free_space_key(struct extent_buffer *eb,
-                                       struct btrfs_free_space_header *h,
+static inline void btrfs_free_space_key(const struct extent_buffer *eb,
+                                       const struct btrfs_free_space_header *h,
                                        struct btrfs_disk_key *key)
 {
        read_eb_member(eb, h, struct btrfs_free_space_header, location, key);
@@ -2674,7 +2677,7 @@ static inline void btrfs_free_space_key(struct extent_buffer *eb,
 
 static inline void btrfs_set_free_space_key(struct extent_buffer *eb,
                                            struct btrfs_free_space_header *h,
-                                           struct btrfs_disk_key *key)
+                                           const struct btrfs_disk_key *key)
 {
        write_eb_member(eb, h, struct btrfs_free_space_header, location, key);
 }
@@ -2701,25 +2704,25 @@ static inline void btrfs_cpu_key_to_disk(struct btrfs_disk_key *disk,
        disk->objectid = cpu_to_le64(cpu->objectid);
 }
 
-static inline void btrfs_node_key_to_cpu(struct extent_buffer *eb,
-                                 struct btrfs_key *key, int nr)
+static inline void btrfs_node_key_to_cpu(const struct extent_buffer *eb,
+                                        struct btrfs_key *key, int nr)
 {
        struct btrfs_disk_key disk_key;
        btrfs_node_key(eb, &disk_key, nr);
        btrfs_disk_key_to_cpu(key, &disk_key);
 }
 
-static inline void btrfs_item_key_to_cpu(struct extent_buffer *eb,
-                                 struct btrfs_key *key, int nr)
+static inline void btrfs_item_key_to_cpu(const struct extent_buffer *eb,
+                                        struct btrfs_key *key, int nr)
 {
        struct btrfs_disk_key disk_key;
        btrfs_item_key(eb, &disk_key, nr);
        btrfs_disk_key_to_cpu(key, &disk_key);
 }
 
-static inline void btrfs_dir_item_key_to_cpu(struct extent_buffer *eb,
-                                     struct btrfs_dir_item *item,
-                                     struct btrfs_key *key)
+static inline void btrfs_dir_item_key_to_cpu(const struct extent_buffer *eb,
+                                            const struct btrfs_dir_item *item,
+                                            struct btrfs_key *key)
 {
        struct btrfs_disk_key disk_key;
        btrfs_dir_item_key(eb, item, &disk_key);
@@ -2752,7 +2755,7 @@ BTRFS_SETGET_STACK_FUNCS(stack_header_nritems, struct btrfs_header,
                         nritems, 32);
 BTRFS_SETGET_STACK_FUNCS(stack_header_bytenr, struct btrfs_header, bytenr, 64);
 
-static inline int btrfs_header_flag(struct extent_buffer *eb, u64 flag)
+static inline int btrfs_header_flag(const struct extent_buffer *eb, u64 flag)
 {
        return (btrfs_header_flags(eb) & flag) == flag;
 }
@@ -2771,7 +2774,7 @@ static inline int btrfs_clear_header_flag(struct extent_buffer *eb, u64 flag)
        return (flags & flag) == flag;
 }
 
-static inline int btrfs_header_backref_rev(struct extent_buffer *eb)
+static inline int btrfs_header_backref_rev(const struct extent_buffer *eb)
 {
        u64 flags = btrfs_header_flags(eb);
        return flags >> BTRFS_BACKREF_REV_SHIFT;
@@ -2791,12 +2794,12 @@ static inline unsigned long btrfs_header_fsid(void)
        return offsetof(struct btrfs_header, fsid);
 }
 
-static inline unsigned long btrfs_header_chunk_tree_uuid(struct extent_buffer *eb)
+static inline unsigned long btrfs_header_chunk_tree_uuid(const struct extent_buffer *eb)
 {
        return offsetof(struct btrfs_header, chunk_tree_uuid);
 }
 
-static inline int btrfs_is_leaf(struct extent_buffer *eb)
+static inline int btrfs_is_leaf(const struct extent_buffer *eb)
 {
        return btrfs_header_level(eb) == 0;
 }
@@ -2830,12 +2833,12 @@ BTRFS_SETGET_STACK_FUNCS(root_stransid, struct btrfs_root_item,
 BTRFS_SETGET_STACK_FUNCS(root_rtransid, struct btrfs_root_item,
                         rtransid, 64);
 
-static inline bool btrfs_root_readonly(struct btrfs_root *root)
+static inline bool btrfs_root_readonly(const struct btrfs_root *root)
 {
        return (root->root_item.flags & cpu_to_le64(BTRFS_ROOT_SUBVOL_RDONLY)) != 0;
 }
 
-static inline bool btrfs_root_dead(struct btrfs_root *root)
+static inline bool btrfs_root_dead(const struct btrfs_root *root)
 {
        return (root->root_item.flags & cpu_to_le64(BTRFS_ROOT_SUBVOL_DEAD)) != 0;
 }
@@ -2892,51 +2895,51 @@ BTRFS_SETGET_STACK_FUNCS(backup_num_devices, struct btrfs_root_backup,
 /* struct btrfs_balance_item */
 BTRFS_SETGET_FUNCS(balance_flags, struct btrfs_balance_item, flags, 64);
 
-static inline void btrfs_balance_data(struct extent_buffer *eb,
-                                     struct btrfs_balance_item *bi,
+static inline void btrfs_balance_data(const struct extent_buffer *eb,
+                                     const struct btrfs_balance_item *bi,
                                      struct btrfs_disk_balance_args *ba)
 {
        read_eb_member(eb, bi, struct btrfs_balance_item, data, ba);
 }
 
 static inline void btrfs_set_balance_data(struct extent_buffer *eb,
-                                         struct btrfs_balance_item *bi,
-                                         struct btrfs_disk_balance_args *ba)
+                                 struct btrfs_balance_item *bi,
+                                 const struct btrfs_disk_balance_args *ba)
 {
        write_eb_member(eb, bi, struct btrfs_balance_item, data, ba);
 }
 
-static inline void btrfs_balance_meta(struct extent_buffer *eb,
-                                     struct btrfs_balance_item *bi,
+static inline void btrfs_balance_meta(const struct extent_buffer *eb,
+                                     const struct btrfs_balance_item *bi,
                                      struct btrfs_disk_balance_args *ba)
 {
        read_eb_member(eb, bi, struct btrfs_balance_item, meta, ba);
 }
 
 static inline void btrfs_set_balance_meta(struct extent_buffer *eb,
-                                         struct btrfs_balance_item *bi,
-                                         struct btrfs_disk_balance_args *ba)
+                                 struct btrfs_balance_item *bi,
+                                 const struct btrfs_disk_balance_args *ba)
 {
        write_eb_member(eb, bi, struct btrfs_balance_item, meta, ba);
 }
 
-static inline void btrfs_balance_sys(struct extent_buffer *eb,
-                                    struct btrfs_balance_item *bi,
+static inline void btrfs_balance_sys(const struct extent_buffer *eb,
+                                    const struct btrfs_balance_item *bi,
                                     struct btrfs_disk_balance_args *ba)
 {
        read_eb_member(eb, bi, struct btrfs_balance_item, sys, ba);
 }
 
 static inline void btrfs_set_balance_sys(struct extent_buffer *eb,
-                                        struct btrfs_balance_item *bi,
-                                        struct btrfs_disk_balance_args *ba)
+                                struct btrfs_balance_item *bi,
+                                const struct btrfs_disk_balance_args *ba)
 {
        write_eb_member(eb, bi, struct btrfs_balance_item, sys, ba);
 }
 
 static inline void
 btrfs_disk_balance_args_to_cpu(struct btrfs_balance_args *cpu,
-                              struct btrfs_disk_balance_args *disk)
+                              const struct btrfs_disk_balance_args *disk)
 {
        memset(cpu, 0, sizeof(*cpu));
 
@@ -2954,7 +2957,7 @@ btrfs_disk_balance_args_to_cpu(struct btrfs_balance_args *cpu,
 
 static inline void
 btrfs_cpu_balance_args_to_disk(struct btrfs_disk_balance_args *disk,
-                              struct btrfs_balance_args *cpu)
+                              const struct btrfs_balance_args *cpu)
 {
        memset(disk, 0, sizeof(*disk));
 
@@ -3022,7 +3025,7 @@ BTRFS_SETGET_STACK_FUNCS(super_magic, struct btrfs_super_block, magic, 64);
 BTRFS_SETGET_STACK_FUNCS(super_uuid_tree_generation, struct btrfs_super_block,
                         uuid_tree_generation, 64);
 
-static inline int btrfs_super_csum_size(struct btrfs_super_block *s)
+static inline int btrfs_super_csum_size(const struct btrfs_super_block *s)
 {
        u16 t = btrfs_super_csum_type(s);
        /*
@@ -3041,8 +3044,8 @@ static inline unsigned long btrfs_leaf_data(struct extent_buffer *l)
  * this returns the address of the start of the last item,
  * which is the stop of the leaf data stack
  */
-static inline unsigned int leaf_data_end(struct btrfs_root *root,
-                                        struct extent_buffer *leaf)
+static inline unsigned int leaf_data_end(const struct btrfs_root *root,
+                                        const struct extent_buffer *leaf)
 {
        u32 nr = btrfs_header_nritems(leaf);
 
@@ -3067,7 +3070,7 @@ BTRFS_SETGET_STACK_FUNCS(stack_file_extent_compression,
                         struct btrfs_file_extent_item, compression, 8);
 
 static inline unsigned long
-btrfs_file_extent_inline_start(struct btrfs_file_extent_item *e)
+btrfs_file_extent_inline_start(const struct btrfs_file_extent_item *e)
 {
        return (unsigned long)e + BTRFS_FILE_EXTENT_INLINE_DATA_START;
 }
@@ -3101,8 +3104,9 @@ BTRFS_SETGET_FUNCS(file_extent_other_encoding, struct btrfs_file_extent_item,
  * size of any extent headers.  If a file is compressed on disk, this is
  * the compressed size
  */
-static inline u32 btrfs_file_extent_inline_item_len(struct extent_buffer *eb,
-                                                   struct btrfs_item *e)
+static inline u32 btrfs_file_extent_inline_item_len(
+                                               const struct extent_buffer *eb,
+                                               struct btrfs_item *e)
 {
        return btrfs_item_size(eb, e) - BTRFS_FILE_EXTENT_INLINE_DATA_START;
 }
@@ -3110,9 +3114,9 @@ static inline u32 btrfs_file_extent_inline_item_len(struct extent_buffer *eb,
 /* this returns the number of file bytes represented by the inline item.
  * If an item is compressed, this is the uncompressed size
  */
-static inline u32 btrfs_file_extent_inline_len(struct extent_buffer *eb,
-                                              int slot,
-                                              struct btrfs_file_extent_item *fi)
+static inline u32 btrfs_file_extent_inline_len(const struct extent_buffer *eb,
+                                       int slot,
+                                       const struct btrfs_file_extent_item *fi)
 {
        struct btrfs_map_token token;
 
@@ -3134,8 +3138,8 @@ static inline u32 btrfs_file_extent_inline_len(struct extent_buffer *eb,
 
 
 /* btrfs_dev_stats_item */
-static inline u64 btrfs_dev_stats_value(struct extent_buffer *eb,
-                                       struct btrfs_dev_stats_item *ptr,
+static inline u64 btrfs_dev_stats_value(const struct extent_buffer *eb,
+                                       const struct btrfs_dev_stats_item *ptr,
                                        int index)
 {
        u64 val;
index 8bc042e09259efef0af638e4c1e3793234f1cba6..417a4cf6035c96adaa94891f65ee6fa2f3a79ec5 100644 (file)
@@ -5111,9 +5111,8 @@ unlock_exit:
        return ret;
 }
 
-void read_extent_buffer(struct extent_buffer *eb, void *dstv,
-                       unsigned long start,
-                       unsigned long len)
+void read_extent_buffer(const struct extent_buffer *eb, void *dstv,
+                       unsigned long start, unsigned long len)
 {
        size_t cur;
        size_t offset;
@@ -5142,9 +5141,9 @@ void read_extent_buffer(struct extent_buffer *eb, void *dstv,
        }
 }
 
-int read_extent_buffer_to_user(struct extent_buffer *eb, void __user *dstv,
-                       unsigned long start,
-                       unsigned long len)
+int read_extent_buffer_to_user(const struct extent_buffer *eb,
+                              void __user *dstv,
+                              unsigned long start, unsigned long len)
 {
        size_t cur;
        size_t offset;
@@ -5179,10 +5178,10 @@ int read_extent_buffer_to_user(struct extent_buffer *eb, void __user *dstv,
        return ret;
 }
 
-int map_private_extent_buffer(struct extent_buffer *eb, unsigned long start,
-                              unsigned long min_len, char **map,
-                              unsigned long *map_start,
-                              unsigned long *map_len)
+int map_private_extent_buffer(const struct extent_buffer *eb,
+                             unsigned long start, unsigned long min_len,
+                             char **map, unsigned long *map_start,
+                             unsigned long *map_len)
 {
        size_t offset = start & (PAGE_CACHE_SIZE - 1);
        char *kaddr;
@@ -5217,9 +5216,8 @@ int map_private_extent_buffer(struct extent_buffer *eb, unsigned long start,
        return 0;
 }
 
-int memcmp_extent_buffer(struct extent_buffer *eb, const void *ptrv,
-                         unsigned long start,
-                         unsigned long len)
+int memcmp_extent_buffer(const struct extent_buffer *eb, const void *ptrv,
+                        unsigned long start, unsigned long len)
 {
        size_t cur;
        size_t offset;
index 1226d954c25b7ba43ab962f16e699e376a762ea2..5095cb199128eff969b71e513e19f3d3d1b5dbf0 100644 (file)
@@ -291,14 +291,13 @@ static inline void extent_buffer_get(struct extent_buffer *eb)
        atomic_inc(&eb->refs);
 }
 
-int memcmp_extent_buffer(struct extent_buffer *eb, const void *ptrv,
-                         unsigned long start,
-                         unsigned long len);
-void read_extent_buffer(struct extent_buffer *eb, void *dst,
+int memcmp_extent_buffer(const struct extent_buffer *eb, const void *ptrv,
+                        unsigned long start, unsigned long len);
+void read_extent_buffer(const struct extent_buffer *eb, void *dst,
                        unsigned long start,
                        unsigned long len);
-int read_extent_buffer_to_user(struct extent_buffer *eb, void __user *dst,
-                              unsigned long start,
+int read_extent_buffer_to_user(const struct extent_buffer *eb,
+                              void __user *dst, unsigned long start,
                               unsigned long len);
 void write_extent_buffer(struct extent_buffer *eb, const void *src,
                         unsigned long start, unsigned long len);
@@ -317,10 +316,10 @@ int set_extent_buffer_uptodate(struct extent_buffer *eb);
 int clear_extent_buffer_uptodate(struct extent_buffer *eb);
 int extent_buffer_uptodate(struct extent_buffer *eb);
 int extent_buffer_under_io(struct extent_buffer *eb);
-int map_private_extent_buffer(struct extent_buffer *eb, unsigned long offset,
-                     unsigned long min_len, char **map,
-                     unsigned long *map_start,
-                     unsigned long *map_len);
+int map_private_extent_buffer(const struct extent_buffer *eb,
+                             unsigned long offset, unsigned long min_len,
+                             char **map, unsigned long *map_start,
+                             unsigned long *map_len);
 int extent_range_clear_dirty_for_io(struct inode *inode, u64 start, u64 end);
 int extent_range_redirty_for_io(struct inode *inode, u64 start, u64 end);
 int extent_clear_unlock_delalloc(struct inode *inode, u64 start, u64 end,
index b976597b07216c9cc17f87b40719d56c9b5d4dc8..63ffd213b0b740ca6ea939f61d89e49e26f2c8ba 100644 (file)
@@ -50,8 +50,8 @@ static inline void put_unaligned_le8(u8 val, void *p)
  */
 
 #define DEFINE_BTRFS_SETGET_BITS(bits)                                 \
-u##bits btrfs_get_token_##bits(struct extent_buffer *eb, void *ptr,    \
-                              unsigned long off,                       \
+u##bits btrfs_get_token_##bits(const struct extent_buffer *eb,         \
+                              const void *ptr, unsigned long off,      \
                               struct btrfs_map_token *token)           \
 {                                                                      \
        unsigned long part_offset = (unsigned long)ptr;                 \
@@ -90,7 +90,8 @@ u##bits btrfs_get_token_##bits(struct extent_buffer *eb, void *ptr,   \
        return res;                                                     \
 }                                                                      \
 void btrfs_set_token_##bits(struct extent_buffer *eb,                  \
-                           void *ptr, unsigned long off, u##bits val,  \
+                           const void *ptr, unsigned long off,         \
+                           u##bits val,                                \
                            struct btrfs_map_token *token)              \
 {                                                                      \
        unsigned long part_offset = (unsigned long)ptr;                 \
@@ -133,7 +134,7 @@ DEFINE_BTRFS_SETGET_BITS(16)
 DEFINE_BTRFS_SETGET_BITS(32)
 DEFINE_BTRFS_SETGET_BITS(64)
 
-void btrfs_node_key(struct extent_buffer *eb,
+void btrfs_node_key(const struct extent_buffer *eb,
                    struct btrfs_disk_key *disk_key, int nr)
 {
        unsigned long ptr = btrfs_node_key_ptr_offset(nr);