|
@@ -1185,9 +1185,12 @@ static int ext2_remount (struct super_block * sb, int * flags, char * data)
|
|
es = sbi->s_es;
|
|
es = sbi->s_es;
|
|
if (((sbi->s_mount_opt & EXT2_MOUNT_XIP) !=
|
|
if (((sbi->s_mount_opt & EXT2_MOUNT_XIP) !=
|
|
(old_mount_opt & EXT2_MOUNT_XIP)) &&
|
|
(old_mount_opt & EXT2_MOUNT_XIP)) &&
|
|
- invalidate_inodes(sb))
|
|
|
|
- ext2_warning(sb, __func__, "busy inodes while remounting "\
|
|
|
|
- "xip remain in cache (no functional problem)");
|
|
|
|
|
|
+ invalidate_inodes(sb)) {
|
|
|
|
+ ext2_warning(sb, __func__, "refusing change of xip flag "
|
|
|
|
+ "with busy inodes while remounting");
|
|
|
|
+ sbi->s_mount_opt &= ~EXT2_MOUNT_XIP;
|
|
|
|
+ sbi->s_mount_opt |= old_mount_opt & EXT2_MOUNT_XIP;
|
|
|
|
+ }
|
|
if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
|
|
if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY))
|
|
return 0;
|
|
return 0;
|
|
if (*flags & MS_RDONLY) {
|
|
if (*flags & MS_RDONLY) {
|