1 Index: linux-2.6.27.21-0.1/fs/ext4/super.c
2 ===================================================================
3 --- linux-2.6.27.21-0.1.orig/fs/ext4/super.c
4 +++ linux-2.6.27.21-0.1/fs/ext4/super.c
5 @@ -74,6 +74,8 @@ static void ext4_write_super_lockfs(stru
7 struct proc_dir_entry *proc_root_ext4;
9 +static int bigendian_extents;
11 ext4_fsblk_t ext4_block_bitmap(struct super_block *sb,
12 struct ext4_group_desc *bg)
14 @@ -1291,7 +1293,7 @@ enum {
15 Opt_ignore, Opt_barrier, Opt_err, Opt_resize, Opt_usrquota,
16 Opt_grpquota, Opt_extents, Opt_noextents, Opt_i_version,
17 Opt_stripe, Opt_delalloc, Opt_nodelalloc,
18 - Opt_inode_readahead_blks,
19 + Opt_inode_readahead_blks, Opt_bigendian_extents,
20 Opt_iopen, Opt_noiopen, Opt_iopen_nopriv,
23 @@ -1353,6 +1355,7 @@ static const match_table_t tokens = {
24 {Opt_delalloc, "delalloc"},
25 {Opt_nodelalloc, "nodelalloc"},
26 {Opt_inode_readahead_blks, "inode_readahead_blks=%u"},
27 + {Opt_bigendian_extents, "bigendian_extents"},
31 @@ -1768,6 +1771,9 @@ set_qf_format:
33 sbi->s_inode_readahead_blks = option;
35 + case Opt_bigendian_extents:
36 + bigendian_extents = 1;
40 "EXT4-fs: Unrecognized mount option \"%s\" "
41 @@ -2673,6 +2679,15 @@ static int ext4_fill_super(struct super_
42 &sbi->s_inode_readahead_blks);
46 + if (bigendian_extents == 0) {
47 + printk(KERN_ERR "EXT4-fs: extents feature is not guaranteed to "
48 + "work on big-endian systems. Use \"bigendian_extents\" "
49 + "mount option to override.\n");
54 bgl_lock_init(&sbi->s_blockgroup_lock);
56 sbi->s_last_alloc_group = -1;