On Sat, Aug 09, 2008 at 09:51:59PM +0200, Christoph Hellwig wrote:
> Thanks to some not so nice code in mount(8) we can't blindly reject moun
> options we don't support to be changed in remount. See the comment in
> the code for more details.
Here is an updated version with a hopefully better worded comments:
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c
===================================================================
--- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2008-08-14
17:29:03.000000000 -0300
+++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c 2008-08-14 17:35:00.000000000
-0300
@@ -1303,9 +1303,29 @@ xfs_fs_remount(
mp->m_flags &= ~XFS_MOUNT_BARRIER;
break;
default:
+ /*
+ * Logically we would return an error here to prevent
+ * users from believing they might have changed
+ * mount options using remount which can't be changed.
+ *
+ * But unfortunately mount(8) adds all options from
+ * mtab and fstab to the mount arguments in some cases
+ * so we can't blindly reject options, but have to
+ * check for each specified option if it actually
+ * differs from the currently set option and only
+ * reject it if that's the case.
+ *
+ * Until that is implemented we return success for
+ * every remount request, and silently ignore all
+ * options that we can't actually change.
+ */
+#if 0
printk(KERN_INFO
"XFS: mount option \"%s\" not supported for remount\n", p);
return -EINVAL;
+#else
+ return 0;
+#endif
}
}
|