diff options
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 0b28b36e7915..05c159218bc2 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -3892,7 +3892,8 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) | |||
3892 | /* Register extent status tree shrinker */ | 3892 | /* Register extent status tree shrinker */ |
3893 | ext4_es_register_shrinker(sbi); | 3893 | ext4_es_register_shrinker(sbi); |
3894 | 3894 | ||
3895 | if ((err = percpu_counter_init(&sbi->s_extent_cache_cnt, 0)) != 0) { | 3895 | err = percpu_counter_init(&sbi->s_extent_cache_cnt, 0, GFP_KERNEL); |
3896 | if (err) { | ||
3896 | ext4_msg(sb, KERN_ERR, "insufficient memory"); | 3897 | ext4_msg(sb, KERN_ERR, "insufficient memory"); |
3897 | goto failed_mount3; | 3898 | goto failed_mount3; |
3898 | } | 3899 | } |
@@ -4106,17 +4107,20 @@ no_journal: | |||
4106 | block = ext4_count_free_clusters(sb); | 4107 | block = ext4_count_free_clusters(sb); |
4107 | ext4_free_blocks_count_set(sbi->s_es, | 4108 | ext4_free_blocks_count_set(sbi->s_es, |
4108 | EXT4_C2B(sbi, block)); | 4109 | EXT4_C2B(sbi, block)); |
4109 | err = percpu_counter_init(&sbi->s_freeclusters_counter, block); | 4110 | err = percpu_counter_init(&sbi->s_freeclusters_counter, block, |
4111 | GFP_KERNEL); | ||
4110 | if (!err) { | 4112 | if (!err) { |
4111 | unsigned long freei = ext4_count_free_inodes(sb); | 4113 | unsigned long freei = ext4_count_free_inodes(sb); |
4112 | sbi->s_es->s_free_inodes_count = cpu_to_le32(freei); | 4114 | sbi->s_es->s_free_inodes_count = cpu_to_le32(freei); |
4113 | err = percpu_counter_init(&sbi->s_freeinodes_counter, freei); | 4115 | err = percpu_counter_init(&sbi->s_freeinodes_counter, freei, |
4116 | GFP_KERNEL); | ||
4114 | } | 4117 | } |
4115 | if (!err) | 4118 | if (!err) |
4116 | err = percpu_counter_init(&sbi->s_dirs_counter, | 4119 | err = percpu_counter_init(&sbi->s_dirs_counter, |
4117 | ext4_count_dirs(sb)); | 4120 | ext4_count_dirs(sb), GFP_KERNEL); |
4118 | if (!err) | 4121 | if (!err) |
4119 | err = percpu_counter_init(&sbi->s_dirtyclusters_counter, 0); | 4122 | err = percpu_counter_init(&sbi->s_dirtyclusters_counter, 0, |
4123 | GFP_KERNEL); | ||
4120 | if (err) { | 4124 | if (err) { |
4121 | ext4_msg(sb, KERN_ERR, "insufficient memory"); | 4125 | ext4_msg(sb, KERN_ERR, "insufficient memory"); |
4122 | goto failed_mount6; | 4126 | goto failed_mount6; |