summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/btrfs/ctree.c24
-rw-r--r--fs/btrfs/ctree.h5
-rw-r--r--fs/btrfs/extent_io.c2
3 files changed, 15 insertions, 16 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 7b1bc25f10cb..5be2beef18be 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -3665,10 +3665,10 @@ static noinline int __push_leaf_right(struct btrfs_fs_info *fs_info,
3665 right_nritems = btrfs_header_nritems(right); 3665 right_nritems = btrfs_header_nritems(right);
3666 3666
3667 push_space = btrfs_item_end_nr(left, left_nritems - push_items); 3667 push_space = btrfs_item_end_nr(left, left_nritems - push_items);
3668 push_space -= leaf_data_end(fs_info, left); 3668 push_space -= leaf_data_end(left);
3669 3669
3670 /* make room in the right data area */ 3670 /* make room in the right data area */
3671 data_end = leaf_data_end(fs_info, right); 3671 data_end = leaf_data_end(right);
3672 memmove_extent_buffer(right, 3672 memmove_extent_buffer(right,
3673 BTRFS_LEAF_DATA_OFFSET + data_end - push_space, 3673 BTRFS_LEAF_DATA_OFFSET + data_end - push_space,
3674 BTRFS_LEAF_DATA_OFFSET + data_end, 3674 BTRFS_LEAF_DATA_OFFSET + data_end,
@@ -3677,7 +3677,7 @@ static noinline int __push_leaf_right(struct btrfs_fs_info *fs_info,
3677 /* copy from the left data area */ 3677 /* copy from the left data area */
3678 copy_extent_buffer(right, left, BTRFS_LEAF_DATA_OFFSET + 3678 copy_extent_buffer(right, left, BTRFS_LEAF_DATA_OFFSET +
3679 BTRFS_LEAF_DATA_SIZE(fs_info) - push_space, 3679 BTRFS_LEAF_DATA_SIZE(fs_info) - push_space,
3680 BTRFS_LEAF_DATA_OFFSET + leaf_data_end(fs_info, left), 3680 BTRFS_LEAF_DATA_OFFSET + leaf_data_end(left),
3681 push_space); 3681 push_space);
3682 3682
3683 memmove_extent_buffer(right, btrfs_item_nr_offset(push_items), 3683 memmove_extent_buffer(right, btrfs_item_nr_offset(push_items),
@@ -3892,7 +3892,7 @@ static noinline int __push_leaf_left(struct btrfs_fs_info *fs_info,
3892 btrfs_item_offset_nr(right, push_items - 1); 3892 btrfs_item_offset_nr(right, push_items - 1);
3893 3893
3894 copy_extent_buffer(left, right, BTRFS_LEAF_DATA_OFFSET + 3894 copy_extent_buffer(left, right, BTRFS_LEAF_DATA_OFFSET +
3895 leaf_data_end(fs_info, left) - push_space, 3895 leaf_data_end(left) - push_space,
3896 BTRFS_LEAF_DATA_OFFSET + 3896 BTRFS_LEAF_DATA_OFFSET +
3897 btrfs_item_offset_nr(right, push_items - 1), 3897 btrfs_item_offset_nr(right, push_items - 1),
3898 push_space); 3898 push_space);
@@ -3919,11 +3919,11 @@ static noinline int __push_leaf_left(struct btrfs_fs_info *fs_info,
3919 3919
3920 if (push_items < right_nritems) { 3920 if (push_items < right_nritems) {
3921 push_space = btrfs_item_offset_nr(right, push_items - 1) - 3921 push_space = btrfs_item_offset_nr(right, push_items - 1) -
3922 leaf_data_end(fs_info, right); 3922 leaf_data_end(right);
3923 memmove_extent_buffer(right, BTRFS_LEAF_DATA_OFFSET + 3923 memmove_extent_buffer(right, BTRFS_LEAF_DATA_OFFSET +
3924 BTRFS_LEAF_DATA_SIZE(fs_info) - push_space, 3924 BTRFS_LEAF_DATA_SIZE(fs_info) - push_space,
3925 BTRFS_LEAF_DATA_OFFSET + 3925 BTRFS_LEAF_DATA_OFFSET +
3926 leaf_data_end(fs_info, right), push_space); 3926 leaf_data_end(right), push_space);
3927 3927
3928 memmove_extent_buffer(right, btrfs_item_nr_offset(0), 3928 memmove_extent_buffer(right, btrfs_item_nr_offset(0),
3929 btrfs_item_nr_offset(push_items), 3929 btrfs_item_nr_offset(push_items),
@@ -4065,7 +4065,7 @@ static noinline void copy_for_split(struct btrfs_trans_handle *trans,
4065 4065
4066 nritems = nritems - mid; 4066 nritems = nritems - mid;
4067 btrfs_set_header_nritems(right, nritems); 4067 btrfs_set_header_nritems(right, nritems);
4068 data_copy_size = btrfs_item_end_nr(l, mid) - leaf_data_end(fs_info, l); 4068 data_copy_size = btrfs_item_end_nr(l, mid) - leaf_data_end(l);
4069 4069
4070 copy_extent_buffer(right, l, btrfs_item_nr_offset(0), 4070 copy_extent_buffer(right, l, btrfs_item_nr_offset(0),
4071 btrfs_item_nr_offset(mid), 4071 btrfs_item_nr_offset(mid),
@@ -4074,7 +4074,7 @@ static noinline void copy_for_split(struct btrfs_trans_handle *trans,
4074 copy_extent_buffer(right, l, 4074 copy_extent_buffer(right, l,
4075 BTRFS_LEAF_DATA_OFFSET + BTRFS_LEAF_DATA_SIZE(fs_info) - 4075 BTRFS_LEAF_DATA_OFFSET + BTRFS_LEAF_DATA_SIZE(fs_info) -
4076 data_copy_size, BTRFS_LEAF_DATA_OFFSET + 4076 data_copy_size, BTRFS_LEAF_DATA_OFFSET +
4077 leaf_data_end(fs_info, l), data_copy_size); 4077 leaf_data_end(l), data_copy_size);
4078 4078
4079 rt_data_off = BTRFS_LEAF_DATA_SIZE(fs_info) - btrfs_item_end_nr(l, mid); 4079 rt_data_off = BTRFS_LEAF_DATA_SIZE(fs_info) - btrfs_item_end_nr(l, mid);
4080 4080
@@ -4577,7 +4577,7 @@ void btrfs_truncate_item(struct btrfs_fs_info *fs_info,
4577 return; 4577 return;
4578 4578
4579 nritems = btrfs_header_nritems(leaf); 4579 nritems = btrfs_header_nritems(leaf);
4580 data_end = leaf_data_end(fs_info, leaf); 4580 data_end = leaf_data_end(leaf);
4581 4581
4582 old_data_start = btrfs_item_offset_nr(leaf, slot); 4582 old_data_start = btrfs_item_offset_nr(leaf, slot);
4583 4583
@@ -4670,7 +4670,7 @@ void btrfs_extend_item(struct btrfs_fs_info *fs_info, struct btrfs_path *path,
4670 leaf = path->nodes[0]; 4670 leaf = path->nodes[0];
4671 4671
4672 nritems = btrfs_header_nritems(leaf); 4672 nritems = btrfs_header_nritems(leaf);
4673 data_end = leaf_data_end(fs_info, leaf); 4673 data_end = leaf_data_end(leaf);
4674 4674
4675 if (btrfs_leaf_free_space(fs_info, leaf) < data_size) { 4675 if (btrfs_leaf_free_space(fs_info, leaf) < data_size) {
4676 btrfs_print_leaf(leaf); 4676 btrfs_print_leaf(leaf);
@@ -4748,7 +4748,7 @@ void setup_items_for_insert(struct btrfs_root *root, struct btrfs_path *path,
4748 slot = path->slots[0]; 4748 slot = path->slots[0];
4749 4749
4750 nritems = btrfs_header_nritems(leaf); 4750 nritems = btrfs_header_nritems(leaf);
4751 data_end = leaf_data_end(fs_info, leaf); 4751 data_end = leaf_data_end(leaf);
4752 4752
4753 if (btrfs_leaf_free_space(fs_info, leaf) < total_size) { 4753 if (btrfs_leaf_free_space(fs_info, leaf) < total_size) {
4754 btrfs_print_leaf(leaf); 4754 btrfs_print_leaf(leaf);
@@ -4976,7 +4976,7 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
4976 nritems = btrfs_header_nritems(leaf); 4976 nritems = btrfs_header_nritems(leaf);
4977 4977
4978 if (slot + nr != nritems) { 4978 if (slot + nr != nritems) {
4979 int data_end = leaf_data_end(fs_info, leaf); 4979 int data_end = leaf_data_end(leaf);
4980 4980
4981 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET + 4981 memmove_extent_buffer(leaf, BTRFS_LEAF_DATA_OFFSET +
4982 data_end + dsize, 4982 data_end + dsize,
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index c03852d1aa34..7fabe4fd0800 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -2443,13 +2443,12 @@ static inline int btrfs_super_csum_size(const struct btrfs_super_block *s)
2443 * this returns the address of the start of the last item, 2443 * this returns the address of the start of the last item,
2444 * which is the stop of the leaf data stack 2444 * which is the stop of the leaf data stack
2445 */ 2445 */
2446static inline unsigned int leaf_data_end(const struct btrfs_fs_info *fs_info, 2446static inline unsigned int leaf_data_end(const struct extent_buffer *leaf)
2447 const struct extent_buffer *leaf)
2448{ 2447{
2449 u32 nr = btrfs_header_nritems(leaf); 2448 u32 nr = btrfs_header_nritems(leaf);
2450 2449
2451 if (nr == 0) 2450 if (nr == 0)
2452 return BTRFS_LEAF_DATA_SIZE(fs_info); 2451 return BTRFS_LEAF_DATA_SIZE(leaf->fs_info);
2453 return btrfs_item_offset_nr(leaf, nr - 1); 2452 return btrfs_item_offset_nr(leaf, nr - 1);
2454} 2453}
2455 2454
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index d33d4d2ef099..a3e3e95c632e 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3710,7 +3710,7 @@ static noinline_for_stack int write_one_eb(struct extent_buffer *eb,
3710 * header 0 1 2 .. N ... data_N .. data_2 data_1 data_0 3710 * header 0 1 2 .. N ... data_N .. data_2 data_1 data_0
3711 */ 3711 */
3712 start = btrfs_item_nr_offset(nritems); 3712 start = btrfs_item_nr_offset(nritems);
3713 end = BTRFS_LEAF_DATA_OFFSET + leaf_data_end(fs_info, eb); 3713 end = BTRFS_LEAF_DATA_OFFSET + leaf_data_end(eb);
3714 memzero_extent_buffer(eb, start, end - start); 3714 memzero_extent_buffer(eb, start, end - start);
3715 } 3715 }
3716 3716