diff options
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/mballoc.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c index 11e1fd59acbd..fbec2ef93797 100644 --- a/fs/ext4/mballoc.c +++ b/fs/ext4/mballoc.c | |||
@@ -2272,13 +2272,13 @@ static int ext4_mb_init_backend(struct super_block *sb) | |||
2272 | meta_group_info[j] = kzalloc(len, GFP_KERNEL); | 2272 | meta_group_info[j] = kzalloc(len, GFP_KERNEL); |
2273 | if (meta_group_info[j] == NULL) { | 2273 | if (meta_group_info[j] == NULL) { |
2274 | printk(KERN_ERR "EXT4-fs: can't allocate buddy mem\n"); | 2274 | printk(KERN_ERR "EXT4-fs: can't allocate buddy mem\n"); |
2275 | i--; | ||
2276 | goto err_freebuddy; | 2275 | goto err_freebuddy; |
2277 | } | 2276 | } |
2278 | desc = ext4_get_group_desc(sb, i, NULL); | 2277 | desc = ext4_get_group_desc(sb, i, NULL); |
2279 | if (desc == NULL) { | 2278 | if (desc == NULL) { |
2280 | printk(KERN_ERR | 2279 | printk(KERN_ERR |
2281 | "EXT4-fs: can't read descriptor %lu\n", i); | 2280 | "EXT4-fs: can't read descriptor %lu\n", i); |
2281 | i++; | ||
2282 | goto err_freebuddy; | 2282 | goto err_freebuddy; |
2283 | } | 2283 | } |
2284 | memset(meta_group_info[j], 0, len); | 2284 | memset(meta_group_info[j], 0, len); |
@@ -2318,13 +2318,11 @@ static int ext4_mb_init_backend(struct super_block *sb) | |||
2318 | return 0; | 2318 | return 0; |
2319 | 2319 | ||
2320 | err_freebuddy: | 2320 | err_freebuddy: |
2321 | while (i >= 0) { | 2321 | while (i-- > 0) |
2322 | kfree(ext4_get_group_info(sb, i)); | 2322 | kfree(ext4_get_group_info(sb, i)); |
2323 | i--; | ||
2324 | } | ||
2325 | i = num_meta_group_infos; | 2323 | i = num_meta_group_infos; |
2326 | err_freemeta: | 2324 | err_freemeta: |
2327 | while (--i >= 0) | 2325 | while (i-- > 0) |
2328 | kfree(sbi->s_group_info[i]); | 2326 | kfree(sbi->s_group_info[i]); |
2329 | iput(sbi->s_buddy_cache); | 2327 | iput(sbi->s_buddy_cache); |
2330 | err_freesgi: | 2328 | err_freesgi: |