aboutsummaryrefslogtreecommitdiff
path: root/fs/btrfs
diff options
context:
space:
mode:
authorGravatar David Sterba <dsterba@suse.com> 2020-04-29 22:56:01 +0200
committerGravatar David Sterba <dsterba@suse.com> 2020-05-25 11:25:32 +0200
commita31356b9e263b723d4991383efc87b71c6e87991 (patch)
tree33cce1856538bd228f94be8e8eebcf4afeb3bd4b /fs/btrfs
parentbtrfs: don't use set/get token for single assignment in overwrite_item (diff)
downloadlinux-a31356b9e263b723d4991383efc87b71c6e87991.tar.gz
linux-a31356b9e263b723d4991383efc87b71c6e87991.tar.bz2
linux-a31356b9e263b723d4991383efc87b71c6e87991.zip
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>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/ctree.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index 576111cdea1d..6dbeb23c59ec 100644
--- a/fs/btrfs/ctree.c
+++ b/fs/btrfs/ctree.c
@@ -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;