summary refs log tree commit diff
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
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)