+++ /dev/null
-Index: linux-2.6.18-128.1.6/fs/ext4/super.c
-===================================================================
---- linux-2.6.18-128.1.6.orig/fs/ext4/super.c
-+++ linux-2.6.18-128.1.6/fs/ext4/super.c
-@@ -70,6 +70,8 @@ struct page *ext4_zero_page;
-
- struct proc_dir_entry *proc_root_ext4;
-
-+static int bigendian_extents;
-+
- ext4_fsblk_t ext4_block_bitmap(struct super_block *sb,
- struct ext4_group_desc *bg)
- {
-@@ -1222,7 +1224,7 @@ enum {
- Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota,
- Opt_grpquota, Opt_extents, Opt_noextents, Opt_i_version,
- Opt_inode_readahead_blks, Opt_journal_ioprio,
-- Opt_iopen, Opt_noiopen, Opt_iopen_nopriv,
-+ Opt_iopen, Opt_noiopen, Opt_iopen_nopriv, Opt_bigendian_extents,
- };
-
- static match_table_t tokens = {
-@@ -1284,6 +1286,7 @@ static match_table_t tokens = {
- {Opt_auto_da_alloc, "auto_da_alloc=%u"},
- {Opt_auto_da_alloc, "auto_da_alloc"},
- {Opt_noauto_da_alloc, "noauto_da_alloc"},
-+ {Opt_bigendian_extents, "bigendian_extents"},
- {Opt_err, NULL},
- };
-
-@@ -1682,6 +1685,9 @@ clear_qf_name:
- return 0;
- sbi->s_stripe = option;
- break;
-+ case Opt_bigendian_extents:
-+ bigendian_extents = 1;
-+ break;
- default:
- printk(KERN_ERR
- "EXT4-fs: Unrecognized mount option \"%s\" "
-@@ -2561,6 +2567,15 @@ static int ext4_fill_super(struct super_
- goto failed_mount;
- }
-
-+#ifdef __BIG_ENDIAN
-+ if (bigendian_extents == 0) {
-+ printk(KERN_ERR "EXT4-fs: extents feature is not guaranteed to "
-+ "work on big-endian systems. Use \"bigendian_extents\" "
-+ "mount option to override.\n");
-+ goto failed_mount;
-+ }
-+#endif
-+
- bgl_lock_init(sbi->s_blockgroup_lock);
-
- sbi->s_last_alloc_group = -1;