summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_map.h
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@gmail.com>2014-02-25 14:15:12 +0000
committerJosef Bacik <jbacik@fb.com>2014-03-10 15:16:56 -0400
commitcbc0e9287d710ce7dce5f8daf667729e83316c45 (patch)
treeabd3c0c847c07464186b86afb9cea66473f024ed /fs/btrfs/extent_map.h
parente84752d434b5cca0869e906e7b94d0531b25c6d3 (diff)
downloadlinux-cbc0e9287d710ce7dce5f8daf667729e83316c45.tar.gz
linux-cbc0e9287d710ce7dce5f8daf667729e83316c45.tar.bz2
linux-cbc0e9287d710ce7dce5f8daf667729e83316c45.zip
Btrfs: remove unneeded field / smaller extent_map structure
We don't need to have an unsigned int field in the extent_map struct to tell us whether the extent map is in the inode's extent_map tree or not. We can use the rb_node struct field and the RB_CLEAR_NODE and RB_EMPTY_NODE macros to achieve the same task. This reduces sizeof(struct extent_map) from 152 bytes to 144 bytes (on a 64 bits system). Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com> Reviewed-by: David Sterba <dsterba@suse.cz> Signed-off-by: Josef Bacik <jbacik@fb.com>
Diffstat (limited to 'fs/btrfs/extent_map.h')
-rw-r--r--fs/btrfs/extent_map.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/btrfs/extent_map.h b/fs/btrfs/extent_map.h
index 93fba716d7f8..f0a645a14d6e 100644
--- a/fs/btrfs/extent_map.h
+++ b/fs/btrfs/extent_map.h
@@ -33,7 +33,6 @@ struct extent_map {
unsigned long flags;
struct block_device *bdev;
atomic_t refs;
- unsigned int in_tree;
unsigned int compress_type;
struct list_head list;
};
@@ -44,6 +43,11 @@ struct extent_map_tree {
rwlock_t lock;
};
+static inline int extent_map_in_tree(const struct extent_map *em)
+{
+ return !RB_EMPTY_NODE(&em->rb_node);
+}
+
static inline u64 extent_map_end(struct extent_map *em)
{
if (em->start + em->len < em->start)