+++ /dev/null
-Index: linux-2.6.16.60-0.37/fs/ext3/super.c
-===================================================================
---- linux-2.6.16.60-0.37.orig/fs/ext3/super.c
-+++ linux-2.6.16.60-0.37/fs/ext3/super.c
-@@ -52,6 +52,8 @@
- #define EXT3_DEFAULT_MAX_DIR_SIZE 0
- #define EXT3_MAX_DIR_SIZE_NAME "max_dir_size"
-
-+static int force_over_8tb;
-+
- 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 *,
-@@ -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_maxdirsize
-+ Opt_mballoc, Opt_nomballoc, Opt_stripe, Opt_maxdirsize, Opt_force_over_8tb,
- };
-
- 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_resize, "resize"},
- {Opt_maxdirsize, "maxdirsize=%u"},
- {Opt_err, NULL}
-@@ -1156,6 +1157,9 @@ clear_qf_name:
- return 0;
- sbi->s_max_dir_size = option;
- break;
-+ case Opt_force_over_8tb:
-+ force_over_8tb = 1;
-+ break;
- default:
- printk (KERN_ERR
- "EXT3-fs: Unrecognized mount option \"%s\" "
-@@ -2242,6 +2246,17 @@ static int ext3_fill_super (struct super
- goto failed_mount;
- }
-
-+ 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");
-+ goto failed_mount;
-+ }
-+ }
-+
- if (EXT3_BLOCKS_PER_GROUP(sb) == 0)
- goto cantfind_ext3;
- sbi->s_groups_count = (le32_to_cpu(es->s_blocks_count) -