diff -NurpPw --minimal linux-2.6.10-rc1-vs1.9.3-rc5/fs/ext2/super.c linux-2.6.10-rc1-vs1.9.3-rc5-tagxid-remount/fs/ext2/super.c --- linux-2.6.10-rc1-vs1.9.3-rc5/fs/ext2/super.c 2004-10-31 00:41:27.000000000 +0200 +++ linux-2.6.10-rc1-vs1.9.3-rc5-tagxid-remount/fs/ext2/super.c 2004-11-01 03:58:00.989490915 +0100 @@ -903,6 +903,7 @@ static int ext2_remount (struct super_bl { struct ext2_sb_info * sbi = EXT2_SB(sb); struct ext2_super_block * es; + int had_tagxid = (sbi->s_mount_opt & EXT2_MOUNT_TAG_XID); /* * Allow the "check" option to be passed as a remount option. @@ -910,6 +911,14 @@ static int ext2_remount (struct super_bl if (!parse_options (data, sbi)) return -EINVAL; + /* + * Should parse_options be modified to be like in ext3/super.c instead ? + */ + if(!had_tagxid && (sbi->s_mount_opt & EXT2_MOUNT_TAG_XID)) { + printk(KERN_ERR "EXT2-fs: cannot add tagxid on remount\n"); + sbi->s_mount_opt &= ~EXT2_MOUNT_TAG_XID; + } + sb->s_flags = (sb->s_flags & ~MS_POSIXACL) | ((sbi->s_mount_opt & EXT2_MOUNT_POSIX_ACL) ? MS_POSIXACL : 0); diff -NurpPw --minimal linux-2.6.10-rc1-vs1.9.3-rc5/fs/ext3/super.c linux-2.6.10-rc1-vs1.9.3-rc5-tagxid-remount/fs/ext3/super.c --- linux-2.6.10-rc1-vs1.9.3-rc5/fs/ext3/super.c 2004-10-31 00:41:27.000000000 +0200 +++ linux-2.6.10-rc1-vs1.9.3-rc5-tagxid-remount/fs/ext3/super.c 2004-11-01 03:48:56.333572919 +0100 @@ -722,8 +722,8 @@ static int parse_options (char * options break; #ifndef CONFIG_INOXID_NONE case Opt_tagxid: - if (is_remount) { - printk(KERN_ERR "EXT3-fs: cannot specify " + if (is_remount && !(sbi->s_mount_opt & EXT3_MOUNT_TAG_XID)) { + printk(KERN_ERR "EXT3-fs: cannot add " "tagxid on remount\n"); return 0; }