From: Zheng Liu Date: Wed, 19 Sep 2012 18:19:24 +0000 (-0400) Subject: ext4: add extent status tree data structures X-Git-Tag: next-20120921~107^2~9 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=5413e8a0ee5fb73665748a88650d206b8c7c7fac;p=karo-tx-linux.git ext4: add extent status tree data structures This patch adds two structures that supports status extent tree and status_extent_info to inode_info. Reviewed-by: Yongqiang Yang Reviewed-by: Allison Henderson Signed-off-by: Zheng Liu Signed-off-by: "Theodore Ts'o" --- diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 8b6902c4d7be..fed591e09673 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -812,6 +812,8 @@ struct ext4_ext_cache { __u32 ec_len; /* must be 32bit to return holes */ }; +#include "extents_status.h" + /* * fourth extended file system inode data in memory */ @@ -889,6 +891,9 @@ struct ext4_inode_info { struct list_head i_prealloc_list; spinlock_t i_prealloc_lock; + /* extents status tree */ + struct ext4_es_tree i_es_tree; + /* ialloc */ ext4_group_t i_last_alloc_group; diff --git a/fs/ext4/extents_status.h b/fs/ext4/extents_status.h new file mode 100644 index 000000000000..8be2ab9c9425 --- /dev/null +++ b/fs/ext4/extents_status.h @@ -0,0 +1,25 @@ +/* + * fs/ext4/extents_status.h + * + * Written by Yongqiang Yang + * Modified by + * Allison Henderson + * Zheng Liu + * + */ + +#ifndef _EXT4_EXTENTS_STATUS_H +#define _EXT4_EXTENTS_STATUS_H + +struct extent_status { + struct rb_node rb_node; + ext4_lblk_t start; /* first block extent covers */ + ext4_lblk_t len; /* length of extent in block */ +}; + +struct ext4_es_tree { + struct rb_root root; + struct extent_status *cache_es; /* recently accessed extent */ +}; + +#endif /* _EXT4_EXTENTS_STATUS_H */