aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ext4/mballoc.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/ext4/mballoc.h')
-rw-r--r--fs/ext4/mballoc.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/fs/ext4/mballoc.h b/fs/ext4/mballoc.h
index b3b4828f8b89..9e815c4e37df 100644
--- a/fs/ext4/mballoc.h
+++ b/fs/ext4/mballoc.h
@@ -98,23 +98,29 @@
98 98
99static struct kmem_cache *ext4_pspace_cachep; 99static struct kmem_cache *ext4_pspace_cachep;
100static struct kmem_cache *ext4_ac_cachep; 100static struct kmem_cache *ext4_ac_cachep;
101static struct kmem_cache *ext4_free_ext_cachep;
101 102
102#ifdef EXT4_BB_MAX_BLOCKS 103struct ext4_free_data {
103#undef EXT4_BB_MAX_BLOCKS 104 /* this links the free block information from group_info */
104#endif 105 struct rb_node node;
105#define EXT4_BB_MAX_BLOCKS 30
106 106
107struct ext4_free_metadata { 107 /* this links the free block information from ext4_sb_info */
108 ext4_group_t group;
109 unsigned short num;
110 ext4_grpblk_t blocks[EXT4_BB_MAX_BLOCKS];
111 struct list_head list; 108 struct list_head list;
109
110 /* group which free block extent belongs */
111 ext4_group_t group;
112
113 /* free block extent */
114 ext4_grpblk_t start_blk;
115 ext4_grpblk_t count;
116
117 /* transaction which freed this extent */
118 tid_t t_tid;
112}; 119};
113 120
114struct ext4_group_info { 121struct ext4_group_info {
115 unsigned long bb_state; 122 unsigned long bb_state;
116 unsigned long bb_tid; 123 struct rb_root bb_free_root;
117 struct ext4_free_metadata *bb_md_cur;
118 unsigned short bb_first_free; 124 unsigned short bb_first_free;
119 unsigned short bb_free; 125 unsigned short bb_free;
120 unsigned short bb_fragments; 126 unsigned short bb_fragments;