mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00
btrfs: don't use set/get token in leaf_space_used
The token is supposed to cache the last page used by the set/get helpers. In leaf_space_used the first and last items are accessed, it's not likely they'd be on the same page so there's some overhead caused updating the token address but not using it. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
60d48e2e45
commit
a31356b9e2
1 changed files with 3 additions and 5 deletions
|
@ -3507,19 +3507,17 @@ static int leaf_space_used(struct extent_buffer *l, int start, int nr)
|
|||
{
|
||||
struct btrfs_item *start_item;
|
||||
struct btrfs_item *end_item;
|
||||
struct btrfs_map_token token;
|
||||
int data_len;
|
||||
int nritems = btrfs_header_nritems(l);
|
||||
int end = min(nritems, start + nr) - 1;
|
||||
|
||||
if (!nr)
|
||||
return 0;
|
||||
btrfs_init_map_token(&token, l);
|
||||
start_item = btrfs_item_nr(start);
|
||||
end_item = btrfs_item_nr(end);
|
||||
data_len = btrfs_token_item_offset(&token, start_item) +
|
||||
btrfs_token_item_size(&token, start_item);
|
||||
data_len = data_len - btrfs_token_item_offset(&token, end_item);
|
||||
data_len = btrfs_item_offset(l, start_item) +
|
||||
btrfs_item_size(l, start_item);
|
||||
data_len = data_len - btrfs_item_offset(l, end_item);
|
||||
data_len += sizeof(struct btrfs_item) * nr;
|
||||
WARN_ON(data_len < 0);
|
||||
return data_len;
|
||||
|
|
Loading…
Add table
Reference in a new issue