[Top] [All Lists]

[PATCH] xfs: minor inode64 mount option cleanup

To: xfs@xxxxxxxxxxx
Subject: [PATCH] xfs: minor inode64 mount option cleanup
From: Alex Elder <elder@xxxxxxxxxxx>
Date: Wed, 01 Aug 2012 09:56:53 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0
Supplying the "inode64" mount option means inode allocations should
not be restricted to "small" inode numbers (within a 32 bit range).
So in xfs_parseargs(), the XFS_MOUNT_SMALL_INUMS flag is cleared if
"inode64" is requested.

If a kernel does not support 64-bit inodes (which may be because it
doesn't support 64-bit block addresses), the "inode64" mount option
is not allowed.  But even though it's treated as an invalid mount
option xfs_parseargs() still clears SMALL_INUMS flag if "inode64" is

The end result may not actually matter, but I think we should not be
changing any state (clearing the SMALL_INUMS flag) when an invalid
mount option is supplied.

So this just makes sure the SMALL_INUMS flag is only cleared if the
kernel supports big inode numbers.

Signed-off-by: Alex Elder <elder@xxxxxxxxxxx>
 fs/xfs/xfs_super.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Index: b/fs/xfs/xfs_super.c
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -295,12 +295,13 @@ xfs_parseargs(
                        dswidth = simple_strtoul(value, &eov, 10);
                } else if (!strcmp(this_char, MNTOPT_64BITINODE)) {
                        mp->m_flags &= ~XFS_MOUNT_SMALL_INUMS;
+#else /* !XFS_BIG_INUMS */
                        xfs_warn(mp, "%s option not allowed on this system",
                        return EINVAL;
+#endif /* !XFS_BIG_INUMS */
                } else if (!strcmp(this_char, MNTOPT_NOUUID)) {
                        mp->m_flags |= XFS_MOUNT_NOUUID;
                } else if (!strcmp(this_char, MNTOPT_BARRIER)) {

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