diff options
author | Carsten Otte <cotte@de.ibm.com> | 2007-06-23 20:16:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-06-24 11:59:12 -0400 |
commit | 266f5aa0970409bf1ebdf9fc4e65a1186eeed3c2 (patch) | |
tree | 5c0ba331d323ddd3b2090631dc6a852a498257de /fs/ext2/super.c | |
parent | 4f84e4be53a04a65d97bf0faa0c8f99e29bc0170 (diff) |
ext2: disallow setting xip on remount
Yan Zheng pointed out that ext2_remount lacks checking if -o xip should be
enabled or not. This patch checks for presence of direct_access on the
backing block device and if the blocksize meets the requirements.
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Cc: Yan Zheng <yanzheng@21cn.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ext2/super.c')
-rw-r--r-- | fs/ext2/super.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/ext2/super.c b/fs/ext2/super.c index 16337bff0272..c9fd8cf6eaa9 100644 --- a/fs/ext2/super.c +++ b/fs/ext2/super.c | |||
@@ -1038,6 +1038,14 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data) | |||
1038 | sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | | 1038 | sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | |
1039 | ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0); | 1039 | ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0); |
1040 | 1040 | ||
1041 | ext2_xip_verify_sb(sb); /* see if bdev supports xip, unset | ||
1042 | EXT2_MOUNT_XIP if not */ | ||
1043 | |||
1044 | if ((ext2_use_xip(sb)) && (sb->s_blocksize != PAGE_SIZE)) { | ||
1045 | printk("XIP: Unsupported blocksize\n"); | ||
1046 | goto restore_opts; | ||
1047 | } | ||
1048 | |||
1041 | es = sbi->s_es; | 1049 | es = sbi->s_es; |
1042 | if (((sbi->s_mount_opt & EXT2_MOUNT_XIP) != | 1050 | if (((sbi->s_mount_opt & EXT2_MOUNT_XIP) != |
1043 | (old_mount_opt & EXT2_MOUNT_XIP)) && | 1051 | (old_mount_opt & EXT2_MOUNT_XIP)) && |