xfs
[Top] [All Lists]

[PATCH] stop rejecting options in remount

To: xfs@xxxxxxxxxxx
Subject: [PATCH] stop rejecting options in remount
From: Christoph Hellwig <hch@xxxxxx>
Date: Sat, 9 Aug 2008 21:51:59 +0200
Cc: jasper@xxxxxxxxxxxx
Sender: xfs-bounce@xxxxxxxxxxx
User-agent: Mutt/1.3.28i
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.


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-09 
16:34:33.000000000 -0300
+++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_super.c  2008-08-09 16:36:55.000000000 
-0300
@@ -1349,9 +1349,28 @@ 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.
+                        *
+                        * The workaround for that behaviour will be to
+                        * check for each specified option whether it actually
+                        * is a change compared to the status quo and if yes
+                        * silently ignore it or otherwise reject the remount
+                        * and tell the user about the reason.
+                        */
+#if 0
                        printk(KERN_INFO
        "XFS: mount option \"%s\" not supported for remount\n", p);
                        return -EINVAL;
+#else
+                       return 0;
+#endif
                }
        }
 


<Prev in Thread] Current Thread [Next in Thread>