mirror of
https://github.com/torvalds/linux.git
synced 2026-05-29 17:43:52 +02:00
btrfs: don't use token set/get accessors for btrfs_item members
The token versions of set/get accessors will be removed, use the normal helpers. The btrfs_item members use that interface the most but there are no real benefits anymore. This reduces stack consumption on x86_64 release config: setup_items_for_insert -32 (144 -> 112) __push_leaf_left -32 (176 -> 144) btrfs_extend_item -16 (104 -> 88) copy_for_split -32 (144 -> 112) btrfs_del_items -16 (144 -> 128) btrfs_truncate_item -24 (152 -> 128) __push_leaf_right -24 (168 -> 144) and module size: text data bss dec hex filename 1463615 115665 16088 1595368 1857e8 pre/btrfs.ko 1463413 115665 16088 1595166 18571e post/btrfs.ko DELTA: -202 Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
60127c29f1
commit
114b806a73
|
|
@ -3110,7 +3110,6 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
|
|||
struct btrfs_fs_info *fs_info = right->fs_info;
|
||||
struct extent_buffer *left = path->nodes[0];
|
||||
struct extent_buffer *upper = path->nodes[1];
|
||||
struct btrfs_map_token token;
|
||||
struct btrfs_disk_key disk_key;
|
||||
int slot;
|
||||
u32 i;
|
||||
|
|
@ -3184,13 +3183,12 @@ static noinline int __push_leaf_right(struct btrfs_trans_handle *trans,
|
|||
copy_leaf_items(right, left, 0, left_nritems - push_items, push_items);
|
||||
|
||||
/* update the item pointers */
|
||||
btrfs_init_map_token(&token, right);
|
||||
right_nritems += push_items;
|
||||
btrfs_set_header_nritems(right, right_nritems);
|
||||
push_space = BTRFS_LEAF_DATA_SIZE(fs_info);
|
||||
for (i = 0; i < right_nritems; i++) {
|
||||
push_space -= btrfs_token_item_size(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i, push_space);
|
||||
push_space -= btrfs_item_size(right, i);
|
||||
btrfs_set_item_offset(right, i, push_space);
|
||||
}
|
||||
|
||||
left_nritems -= push_items;
|
||||
|
|
@ -3333,7 +3331,6 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
|
|||
int ret = 0;
|
||||
u32 this_item_size;
|
||||
u32 old_left_item_size;
|
||||
struct btrfs_map_token token;
|
||||
|
||||
if (empty)
|
||||
nr = min(right_nritems, max_slot);
|
||||
|
|
@ -3381,13 +3378,12 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
|
|||
old_left_nritems = btrfs_header_nritems(left);
|
||||
BUG_ON(old_left_nritems <= 0);
|
||||
|
||||
btrfs_init_map_token(&token, left);
|
||||
old_left_item_size = btrfs_item_offset(left, old_left_nritems - 1);
|
||||
for (i = old_left_nritems; i < old_left_nritems + push_items; i++) {
|
||||
u32 ioff;
|
||||
|
||||
ioff = btrfs_token_item_offset(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i,
|
||||
ioff = btrfs_item_offset(left, i);
|
||||
btrfs_set_item_offset(left, i,
|
||||
ioff - (BTRFS_LEAF_DATA_SIZE(fs_info) - old_left_item_size));
|
||||
}
|
||||
btrfs_set_header_nritems(left, old_left_nritems + push_items);
|
||||
|
|
@ -3408,13 +3404,12 @@ static noinline int __push_leaf_left(struct btrfs_trans_handle *trans,
|
|||
btrfs_header_nritems(right) - push_items);
|
||||
}
|
||||
|
||||
btrfs_init_map_token(&token, right);
|
||||
right_nritems -= push_items;
|
||||
btrfs_set_header_nritems(right, right_nritems);
|
||||
push_space = BTRFS_LEAF_DATA_SIZE(fs_info);
|
||||
for (i = 0; i < right_nritems; i++) {
|
||||
push_space = push_space - btrfs_token_item_size(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i, push_space);
|
||||
push_space = push_space - btrfs_item_size(right, i);
|
||||
btrfs_set_item_offset(right, i, push_space);
|
||||
}
|
||||
|
||||
btrfs_mark_buffer_dirty(trans, left);
|
||||
|
|
@ -3528,7 +3523,6 @@ static noinline int copy_for_split(struct btrfs_trans_handle *trans,
|
|||
int i;
|
||||
int ret;
|
||||
struct btrfs_disk_key disk_key;
|
||||
struct btrfs_map_token token;
|
||||
|
||||
nritems = nritems - mid;
|
||||
btrfs_set_header_nritems(right, nritems);
|
||||
|
|
@ -3541,12 +3535,11 @@ static noinline int copy_for_split(struct btrfs_trans_handle *trans,
|
|||
|
||||
rt_data_off = BTRFS_LEAF_DATA_SIZE(fs_info) - btrfs_item_data_end(l, mid);
|
||||
|
||||
btrfs_init_map_token(&token, right);
|
||||
for (i = 0; i < nritems; i++) {
|
||||
u32 ioff;
|
||||
|
||||
ioff = btrfs_token_item_offset(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i, ioff + rt_data_off);
|
||||
ioff = btrfs_item_offset(right, i);
|
||||
btrfs_set_item_offset(right, i, ioff + rt_data_off);
|
||||
}
|
||||
|
||||
btrfs_set_header_nritems(l, mid);
|
||||
|
|
@ -4012,7 +4005,6 @@ void btrfs_truncate_item(struct btrfs_trans_handle *trans,
|
|||
unsigned int old_size;
|
||||
unsigned int size_diff;
|
||||
int i;
|
||||
struct btrfs_map_token token;
|
||||
|
||||
leaf = path->nodes[0];
|
||||
slot = path->slots[0];
|
||||
|
|
@ -4035,12 +4027,11 @@ void btrfs_truncate_item(struct btrfs_trans_handle *trans,
|
|||
* item0..itemN ... dataN.offset..dataN.size .. data0.size
|
||||
*/
|
||||
/* first correct the data pointers */
|
||||
btrfs_init_map_token(&token, leaf);
|
||||
for (i = slot; i < nritems; i++) {
|
||||
u32 ioff;
|
||||
|
||||
ioff = btrfs_token_item_offset(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i, ioff + size_diff);
|
||||
ioff = btrfs_item_offset(leaf, i);
|
||||
btrfs_set_item_offset(leaf, i, ioff + size_diff);
|
||||
}
|
||||
|
||||
/* shift the data */
|
||||
|
|
@ -4103,7 +4094,6 @@ void btrfs_extend_item(struct btrfs_trans_handle *trans,
|
|||
unsigned int old_data;
|
||||
unsigned int old_size;
|
||||
int i;
|
||||
struct btrfs_map_token token;
|
||||
|
||||
leaf = path->nodes[0];
|
||||
|
||||
|
|
@ -4129,12 +4119,11 @@ void btrfs_extend_item(struct btrfs_trans_handle *trans,
|
|||
* item0..itemN ... dataN.offset..dataN.size .. data0.size
|
||||
*/
|
||||
/* first correct the data pointers */
|
||||
btrfs_init_map_token(&token, leaf);
|
||||
for (i = slot; i < nritems; i++) {
|
||||
u32 ioff;
|
||||
|
||||
ioff = btrfs_token_item_offset(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i, ioff - data_size);
|
||||
ioff = btrfs_item_offset(leaf, i);
|
||||
btrfs_set_item_offset(leaf, i, ioff - data_size);
|
||||
}
|
||||
|
||||
/* shift the data */
|
||||
|
|
@ -4174,7 +4163,6 @@ static void setup_items_for_insert(struct btrfs_trans_handle *trans,
|
|||
struct btrfs_disk_key disk_key;
|
||||
struct extent_buffer *leaf;
|
||||
int slot;
|
||||
struct btrfs_map_token token;
|
||||
u32 total_size;
|
||||
|
||||
/*
|
||||
|
|
@ -4202,7 +4190,6 @@ static void setup_items_for_insert(struct btrfs_trans_handle *trans,
|
|||
BUG();
|
||||
}
|
||||
|
||||
btrfs_init_map_token(&token, leaf);
|
||||
if (slot != nritems) {
|
||||
unsigned int old_data = btrfs_item_data_end(leaf, slot);
|
||||
|
||||
|
|
@ -4220,8 +4207,8 @@ static void setup_items_for_insert(struct btrfs_trans_handle *trans,
|
|||
for (i = slot; i < nritems; i++) {
|
||||
u32 ioff;
|
||||
|
||||
ioff = btrfs_token_item_offset(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i,
|
||||
ioff = btrfs_item_offset(leaf, i);
|
||||
btrfs_set_item_offset(leaf, i,
|
||||
ioff - batch->total_data_size);
|
||||
}
|
||||
/* shift the items */
|
||||
|
|
@ -4238,8 +4225,8 @@ static void setup_items_for_insert(struct btrfs_trans_handle *trans,
|
|||
btrfs_cpu_key_to_disk(&disk_key, &batch->keys[i]);
|
||||
btrfs_set_item_key(leaf, &disk_key, slot + i);
|
||||
data_end -= batch->data_sizes[i];
|
||||
btrfs_set_token_item_offset(&token, slot + i, data_end);
|
||||
btrfs_set_token_item_size(&token, slot + i, batch->data_sizes[i]);
|
||||
btrfs_set_item_offset(leaf, slot + i, data_end);
|
||||
btrfs_set_item_size(leaf, slot + i, batch->data_sizes[i]);
|
||||
}
|
||||
|
||||
btrfs_set_header_nritems(leaf, nritems + batch->nr);
|
||||
|
|
@ -4479,7 +4466,6 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
|||
if (slot + nr != nritems) {
|
||||
const u32 last_off = btrfs_item_offset(leaf, slot + nr - 1);
|
||||
const int data_end = leaf_data_end(leaf);
|
||||
struct btrfs_map_token token;
|
||||
u32 dsize = 0;
|
||||
int i;
|
||||
|
||||
|
|
@ -4489,12 +4475,11 @@ int btrfs_del_items(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
|||
memmove_leaf_data(leaf, data_end + dsize, data_end,
|
||||
last_off - data_end);
|
||||
|
||||
btrfs_init_map_token(&token, leaf);
|
||||
for (i = slot + nr; i < nritems; i++) {
|
||||
u32 ioff;
|
||||
|
||||
ioff = btrfs_token_item_offset(&token, i);
|
||||
btrfs_set_token_item_offset(&token, i, ioff + dsize);
|
||||
ioff = btrfs_item_offset(leaf, i);
|
||||
btrfs_set_item_offset(leaf, i, ioff + dsize);
|
||||
}
|
||||
|
||||
memmove_leaf_items(leaf, slot, slot + nr, nritems - slot - nr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user