|
@@ -819,7 +819,7 @@ static void ext4_put_super(struct super_block *sb)
|
|
|
|
|
|
for (i = 0; i < sbi->s_gdb_count; i++)
|
|
|
brelse(sbi->s_group_desc[i]);
|
|
|
- kfree(sbi->s_group_desc);
|
|
|
+ ext4_kvfree(sbi->s_group_desc);
|
|
|
ext4_kvfree(sbi->s_flex_groups);
|
|
|
percpu_counter_destroy(&sbi->s_freeblocks_counter);
|
|
|
percpu_counter_destroy(&sbi->s_freeinodes_counter);
|
|
@@ -3439,8 +3439,9 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
(EXT4_MAX_BLOCK_FILE_PHYS / EXT4_BLOCKS_PER_GROUP(sb)));
|
|
|
db_count = (sbi->s_groups_count + EXT4_DESC_PER_BLOCK(sb) - 1) /
|
|
|
EXT4_DESC_PER_BLOCK(sb);
|
|
|
- sbi->s_group_desc = kmalloc(db_count * sizeof(struct buffer_head *),
|
|
|
- GFP_KERNEL);
|
|
|
+ sbi->s_group_desc = ext4_kvmalloc(db_count *
|
|
|
+ sizeof(struct buffer_head *),
|
|
|
+ GFP_KERNEL);
|
|
|
if (sbi->s_group_desc == NULL) {
|
|
|
ext4_msg(sb, KERN_ERR, "not enough memory");
|
|
|
goto failed_mount;
|
|
@@ -3783,7 +3784,7 @@ failed_mount3:
|
|
|
failed_mount2:
|
|
|
for (i = 0; i < db_count; i++)
|
|
|
brelse(sbi->s_group_desc[i]);
|
|
|
- kfree(sbi->s_group_desc);
|
|
|
+ ext4_kvfree(sbi->s_group_desc);
|
|
|
failed_mount:
|
|
|
if (sbi->s_proc) {
|
|
|
remove_proc_entry(sb->s_id, ext4_proc_root);
|