diff options
author | Filipe Manana <fdmanana@gmail.com> | 2014-02-25 14:15:12 +0000 |
---|---|---|
committer | Josef Bacik <jbacik@fb.com> | 2014-03-10 15:16:56 -0400 |
commit | cbc0e9287d710ce7dce5f8daf667729e83316c45 (patch) | |
tree | abd3c0c847c07464186b86afb9cea66473f024ed /fs/btrfs/extent_map.h | |
parent | e84752d434b5cca0869e906e7b94d0531b25c6d3 (diff) | |
download | lwn-cbc0e9287d710ce7dce5f8daf667729e83316c45.tar.gz lwn-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.h | 6 |
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) |