diff options
-rw-r--r-- | fs/btrfs/ctree.c | 24 | ||||
-rw-r--r-- | fs/btrfs/ctree.h | 5 | ||||
-rw-r--r-- | fs/btrfs/extent_io.c | 2 |
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 | */ |
2446 | static inline unsigned int leaf_data_end(const struct btrfs_fs_info *fs_info, | 2446 | static 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 | ||