diff options
author | Theodore Ts'o <tytso@mit.edu> | 2014-03-24 14:09:06 -0400 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2014-03-24 14:09:06 -0400 |
commit | ed3654eb981fd44694b4d2a636e13f998bc10e7f (patch) | |
tree | 133c6cd3044dc9aa628065550b873ba86d79c2f3 /fs/ext4/super.c | |
parent | c4f65706056e9f0c2cf126b29c6920a179d91150 (diff) | |
download | linux-ed3654eb981fd44694b4d2a636e13f998bc10e7f.tar.gz linux-ed3654eb981fd44694b4d2a636e13f998bc10e7f.tar.bz2 linux-ed3654eb981fd44694b4d2a636e13f998bc10e7f.zip |
ext4: optimize Hurd tests when reading/writing inodes
Set a in-memory superblock flag to indicate whether the file system is
designed to support the Hurd.
Also, add a sanity check to make sure the 64-bit feature is not set
for Hurd file systems, since i_file_acl_high conflicts with a
Hurd-specific field.
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4/super.c')
-rw-r--r-- | fs/ext4/super.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 5a51af7d0335..f3c667091618 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3580,6 +3580,16 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent) "feature flags set on rev 0 fs, " "running e2fsck is recommended"); + if (es->s_creator_os == cpu_to_le32(EXT4_OS_HURD)) { + set_opt2(sb, HURD_COMPAT); + if (EXT4_HAS_INCOMPAT_FEATURE(sb, + EXT4_FEATURE_INCOMPAT_64BIT)) { + ext4_msg(sb, KERN_ERR, + "The Hurd can't support 64-bit file systems"); + goto failed_mount; + } + } + if (IS_EXT2_SB(sb)) { if (ext2_feature_set_ok(sb)) ext4_msg(sb, KERN_INFO, "mounting ext2 file system " |