diff options
author | Liu Bo <bo.liu@linux.alibaba.com> | 2018-08-23 03:51:52 +0800 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2018-10-15 17:23:33 +0200 |
commit | 07e1ce096db3605f3e0c98695df66a51e2be9f05 (patch) | |
tree | 3e4a910cd136c1b6666d3be7e33b826dbd016db6 /fs/btrfs/extent_map.h | |
parent | 03a1d4c891634dd5b98da865fb783e8b22d4d027 (diff) | |
download | linux-07e1ce096db3605f3e0c98695df66a51e2be9f05.tar.gz linux-07e1ce096db3605f3e0c98695df66a51e2be9f05.tar.bz2 linux-07e1ce096db3605f3e0c98695df66a51e2be9f05.zip |
Btrfs: extent_map: use rb_first_cached
rb_first_cached() trades an extra pointer "leftmost" for doing the
same job as rb_first() but in O(1).
As evict_inode_truncate_pages() removes all extent mapping by always
looking for the first rb entry, it's helpful to use rb_first_cached
instead.
For more details about the optimization see patch "Btrfs: delayed-refs:
use rb_first_cached for href_root".
Tested-by: Holger Hoffstätte <holger@applied-asynchrony.com>
Signed-off-by: Liu Bo <bo.liu@linux.alibaba.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/extent_map.h')
-rw-r--r-- | fs/btrfs/extent_map.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/btrfs/extent_map.h b/fs/btrfs/extent_map.h index a7ceb30449fc..31977ffd6190 100644 --- a/fs/btrfs/extent_map.h +++ b/fs/btrfs/extent_map.h @@ -49,7 +49,7 @@ struct extent_map { }; struct extent_map_tree { - struct rb_root map; + struct rb_root_cached map; struct list_head modified_extents; rwlock_t lock; }; |