[XFS] Rework the final mount options flag bit to make room for more.

SGI-PV: 943866
SGI-Modid: xfs-linux:xfs-kern:24030a

Signed-off-by: Nathan Scott <nathans@sgi.com>
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c
index 96f7cde..f4f8805 100644
--- a/fs/xfs/xfs_vfsops.c
+++ b/fs/xfs/xfs_vfsops.c
@@ -291,11 +291,12 @@
 		mp->m_flags |= XFS_MOUNT_IDELETE;
 	if (ap->flags & XFSMNT_DIRSYNC)
 		mp->m_flags |= XFS_MOUNT_DIRSYNC;
-	if (ap->flags & XFSMNT_COMPAT_IOSIZE)
-		mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE;
 	if (ap->flags & XFSMNT_COMPAT_ATTR)
 		mp->m_flags |= XFS_MOUNT_COMPAT_ATTR;
 
+	if (ap->flags2 & XFSMNT2_COMPAT_IOSIZE)
+		mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE;
+
 	/*
 	 * no recovery flag requires a read-only mount
 	 */
@@ -1679,7 +1680,7 @@
 	int			dsunit, dswidth, vol_dsunit, vol_dswidth;
 	int			iosize;
 
-	args->flags |= XFSMNT_COMPAT_IOSIZE;
+	args->flags2 |= XFSMNT2_COMPAT_IOSIZE;
 	args->flags |= XFSMNT_COMPAT_ATTR;
 
 #if 0	/* XXX: off by default, until some remaining issues ironed out */
@@ -1811,9 +1812,9 @@
 		} else if (!strcmp(this_char, MNTOPT_NOIKEEP)) {
 			args->flags |= XFSMNT_IDELETE;
 		} else if (!strcmp(this_char, MNTOPT_LARGEIO)) {
-			args->flags &= ~XFSMNT_COMPAT_IOSIZE;
+			args->flags2 &= ~XFSMNT2_COMPAT_IOSIZE;
 		} else if (!strcmp(this_char, MNTOPT_NOLARGEIO)) {
-			args->flags |= XFSMNT_COMPAT_IOSIZE;
+			args->flags2 |= XFSMNT2_COMPAT_IOSIZE;
 		} else if (!strcmp(this_char, MNTOPT_ATTR2)) {
 			args->flags &= ~XFSMNT_COMPAT_ATTR;
 		} else if (!strcmp(this_char, MNTOPT_NOATTR2)) {
@@ -1867,6 +1868,8 @@
 		args->sunit = args->swidth = 0;
 	}
 
+	if (args->flags2)
+		args->flags |= XFSMNT_FLAGS2;
 	return 0;
 }