static int ext3_load_journal(struct super_block *, struct ext3_super_block *,
unsigned long journal_devnum);
static int ext3_create_journal(struct super_block *, struct ext3_super_block *,
-@@ -708,7 +710,7 @@ enum {
+@@ -710,7 +710,7 @@ enum {
Opt_iopen, Opt_noiopen, Opt_iopen_nopriv,
+ Opt_grpquota,
Opt_extents, Opt_noextents, Opt_bigendian_extents, Opt_extdebug,
- Opt_mballoc, Opt_nomballoc, Opt_stripe,
-- Opt_grpquota
-+ Opt_grpquota, Opt_force_over_8tb
+- Opt_mballoc, Opt_nomballoc, Opt_stripe, Opt_maxdirsize
++ Opt_mballoc, Opt_nomballoc, Opt_stripe, Opt_maxdirsize, Opt_force_over_8tb,
};
static match_table_t tokens = {
-@@ -771,6 +773,7 @@ static match_table_t tokens = {
+@@ -773,6 +773,7 @@ static match_table_t tokens = {
{Opt_mballoc, "mballoc"},
{Opt_nomballoc, "nomballoc"},
{Opt_stripe, "stripe=%u"},
+ {Opt_force_over_8tb, "force_over_8tb"},
- {Opt_err, NULL},
{Opt_resize, "resize"},
- };
-@@ -1145,6 +1148,9 @@ clear_qf_name:
+ {Opt_maxdirsize, "maxdirsize=%u"},
+ {Opt_err, NULL}
+@@ -1156,6 +1157,9 @@ clear_qf_name:
return 0;
- sbi->s_stripe = option;
+ sbi->s_max_dir_size = option;
break;
+ case Opt_force_over_8tb:
+ force_over_8tb = 1;
default:
printk (KERN_ERR
"EXT3-fs: Unrecognized mount option \"%s\" "
-@@ -2231,6 +2237,17 @@ static int ext3_fill_super (struct super
+@@ -2242,6 +2246,17 @@ static int ext3_fill_super (struct super
goto failed_mount;
}
-+ if (le32_to_cpu(es->s_blocks_count) >
++ if (le32_to_cpu(es->s_blocks_count) >
+ ((0x80000000000ULL >> sb->s_blocksize_bits) - 1)) {
+ if (force_over_8tb == 0) {
+ printk(KERN_ERR "EXT3-fs does not support filesystems "
-+ "greater than 8TB and can cause data corruption."
-+ "Use \"force_over_8tb\" mount option to override."
-+ "\n");
++ "greater than 8TB and can cause data corruption."
++ "Use \"force_over_8tb\" mount option to override."
++ "\n");
+ goto failed_mount;
+ }
+ }