|
@@ -3701,6 +3701,9 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
sbi->s_err_report.function = print_daily_error_info;
|
|
|
sbi->s_err_report.data = (unsigned long) sb;
|
|
|
|
|
|
+ /* Register extent status tree shrinker */
|
|
|
+ ext4_es_register_shrinker(sb);
|
|
|
+
|
|
|
err = percpu_counter_init(&sbi->s_freeclusters_counter,
|
|
|
ext4_count_free_clusters(sb));
|
|
|
if (!err) {
|
|
@@ -3726,9 +3729,6 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
sbi->s_max_writeback_mb_bump = 128;
|
|
|
sbi->s_extent_max_zeroout_kb = 32;
|
|
|
|
|
|
- /* Register extent status tree shrinker */
|
|
|
- ext4_es_register_shrinker(sb);
|
|
|
-
|
|
|
/*
|
|
|
* set up enough so that it can read an inode
|
|
|
*/
|
|
@@ -4013,6 +4013,7 @@ failed_mount_wq:
|
|
|
sbi->s_journal = NULL;
|
|
|
}
|
|
|
failed_mount3:
|
|
|
+ ext4_es_unregister_shrinker(sb);
|
|
|
del_timer(&sbi->s_err_report);
|
|
|
if (sbi->s_flex_groups)
|
|
|
ext4_kvfree(sbi->s_flex_groups);
|