diff options
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 04158ad74dbb..08fc86a358d3 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -2118,6 +2118,18 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) | |||
2118 | for (i = 0; i < 4; i++) | 2118 | for (i = 0; i < 4; i++) |
2119 | sbi->s_hash_seed[i] = le32_to_cpu(es->s_hash_seed[i]); | 2119 | sbi->s_hash_seed[i] = le32_to_cpu(es->s_hash_seed[i]); |
2120 | sbi->s_def_hash_version = es->s_def_hash_version; | 2120 | sbi->s_def_hash_version = es->s_def_hash_version; |
2121 | i = le32_to_cpu(es->s_flags); | ||
2122 | if (i & EXT2_FLAGS_UNSIGNED_HASH) | ||
2123 | sbi->s_hash_unsigned = 3; | ||
2124 | else if ((i & EXT2_FLAGS_SIGNED_HASH) == 0) { | ||
2125 | #ifdef __CHAR_UNSIGNED__ | ||
2126 | es->s_flags |= cpu_to_le32(EXT2_FLAGS_UNSIGNED_HASH); | ||
2127 | sbi->s_hash_unsigned = 3; | ||
2128 | #else | ||
2129 | es->s_flags |= cpu_to_le32(EXT2_FLAGS_SIGNED_HASH); | ||
2130 | #endif | ||
2131 | sb->s_dirt = 1; | ||
2132 | } | ||
2121 | 2133 | ||
2122 | if (sbi->s_blocks_per_group > blocksize * 8) { | 2134 | if (sbi->s_blocks_per_group > blocksize * 8) { |
2123 | printk(KERN_ERR | 2135 | printk(KERN_ERR |