|
@@ -2456,6 +2456,21 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
"available.\n");
|
|
|
}
|
|
|
|
|
|
+ if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {
|
|
|
+ printk(KERN_WARNING "EXT4-fs: Ignoring delalloc option - "
|
|
|
+ "requested data journaling mode\n");
|
|
|
+ clear_opt(sbi->s_mount_opt, DELALLOC);
|
|
|
+ } else if (test_opt(sb, DELALLOC))
|
|
|
+ printk(KERN_INFO "EXT4-fs: delayed allocation enabled\n");
|
|
|
+
|
|
|
+ ext4_ext_init(sb);
|
|
|
+ err = ext4_mb_init(sb, needs_recovery);
|
|
|
+ if (err) {
|
|
|
+ printk(KERN_ERR "EXT4-fs: failed to initalize mballoc (%d)\n",
|
|
|
+ err);
|
|
|
+ goto failed_mount4;
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* akpm: core read_super() calls in here with the superblock locked.
|
|
|
* That deadlocks, because orphan cleanup needs to lock the superblock
|
|
@@ -2475,21 +2490,6 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA ? "ordered":
|
|
|
"writeback");
|
|
|
|
|
|
- if (test_opt(sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA) {
|
|
|
- printk(KERN_WARNING "EXT4-fs: Ignoring delalloc option - "
|
|
|
- "requested data journaling mode\n");
|
|
|
- clear_opt(sbi->s_mount_opt, DELALLOC);
|
|
|
- } else if (test_opt(sb, DELALLOC))
|
|
|
- printk(KERN_INFO "EXT4-fs: delayed allocation enabled\n");
|
|
|
-
|
|
|
- ext4_ext_init(sb);
|
|
|
- err = ext4_mb_init(sb, needs_recovery);
|
|
|
- if (err) {
|
|
|
- printk(KERN_ERR "EXT4-fs: failed to initalize mballoc (%d)\n",
|
|
|
- err);
|
|
|
- goto failed_mount4;
|
|
|
- }
|
|
|
-
|
|
|
lock_kernel();
|
|
|
return 0;
|
|
|
|