Btrfs: Make free space cache code generic
So we can re-use the code to cache free inode numbers. The change is quite straightforward. Two new structures are introduced. - struct btrfs_free_space_ctl We move those variables that are used for caching free space from struct btrfs_block_group_cache to this new struct. - struct btrfs_free_space_op We do block group specific work (e.g. calculation of extents threshold) through functions registered in this struct. And then we can remove references to struct btrfs_block_group_cache. Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
This commit is contained in:
@ -830,9 +830,6 @@ struct btrfs_block_group_cache {
|
||||
u64 bytes_super;
|
||||
u64 flags;
|
||||
u64 sectorsize;
|
||||
int extents_thresh;
|
||||
int free_extents;
|
||||
int total_bitmaps;
|
||||
unsigned int ro:1;
|
||||
unsigned int dirty:1;
|
||||
unsigned int iref:1;
|
||||
@ -847,9 +844,7 @@ struct btrfs_block_group_cache {
|
||||
struct btrfs_space_info *space_info;
|
||||
|
||||
/* free space cache stuff */
|
||||
spinlock_t tree_lock;
|
||||
struct rb_root free_space_offset;
|
||||
u64 free_space;
|
||||
struct btrfs_free_space_ctl *free_space_ctl;
|
||||
|
||||
/* block group cache stuff */
|
||||
struct rb_node cache_node;
|
||||
|
Reference in New Issue
Block a user