From 945549e9b7444a43a97c8dcd3e0e584c7afeb8f7 Mon Sep 17 00:00:00 2001 From: Zheng Liu Date: Thu, 8 Nov 2012 15:18:54 -0500 Subject: [PATCH] --- yaml --- r: 344854 b: refs/heads/master c: c0677e6d0f9d991adff972b8d06cb83de1f8ee8e h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/ext4/ext4.h | 6 ++++++ trunk/fs/ext4/extents_status.h | 25 +++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 trunk/fs/ext4/extents_status.h diff --git a/[refs] b/[refs] index 83e13980bd23..f24e9c223889 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 07aa2ea13814ea60d12f7330b6d5ccfdb0c3ba4d +refs/heads/master: c0677e6d0f9d991adff972b8d06cb83de1f8ee8e diff --git a/trunk/fs/ext4/ext4.h b/trunk/fs/ext4/ext4.h index 3c20de1d59d0..bcc634b26d46 100644 --- a/trunk/fs/ext4/ext4.h +++ b/trunk/fs/ext4/ext4.h @@ -811,6 +811,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 */ @@ -888,6 +890,10 @@ 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; + rwlock_t i_es_lock; + /* ialloc */ ext4_group_t i_last_alloc_group; diff --git a/trunk/fs/ext4/extents_status.h b/trunk/fs/ext4/extents_status.h new file mode 100644 index 000000000000..8be2ab9c9425 --- /dev/null +++ b/trunk/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 */