aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs/xfs_mount.c
diff options
context:
space:
mode:
authorTim Shimmin <tes@sgi.com>2008-04-30 04:15:28 -0400
committerNiv Sardi <xaiki@debian.org>2008-07-28 02:58:05 -0400
commit7c12f296500e1157872ef45b3f3bb06b4b73f1c1 (patch)
treed6737b8ee2775ff70a1a7b5c77a4c25b3423bada /fs/xfs/xfs_mount.c
parentf9f6dce01905179d9a209cc1e69fe9047736c112 (diff)
[XFS] Fix up noattr2 so that it will properly update the versionnum and
features2 fields. Previously, mounting with noattr2 failed to achieve anything because although it cleared the attr2 mount flag, it would set it again as soon as it processed the superblock fields. The fix now has an explicit noattr2 flag and uses it later to fix up the versionnum and features2 fields. SGI-PV: 980021 SGI-Modid: xfs-linux-melb:xfs-kern:31003a Signed-off-by: Tim Shimmin <tes@sgi.com> Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs/xfs_mount.c')
-rw-r--r--fs/xfs/xfs_mount.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index da3988453b71..361c7a755a07 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -994,9 +994,19 @@ xfs_mountfs(
994 * Re-check for ATTR2 in case it was found in bad_features2 994 * Re-check for ATTR2 in case it was found in bad_features2
995 * slot. 995 * slot.
996 */ 996 */
997 if (xfs_sb_version_hasattr2(&mp->m_sb)) 997 if (xfs_sb_version_hasattr2(&mp->m_sb) &&
998 !(mp->m_flags & XFS_MOUNT_NOATTR2))
998 mp->m_flags |= XFS_MOUNT_ATTR2; 999 mp->m_flags |= XFS_MOUNT_ATTR2;
1000 }
1001
1002 if (xfs_sb_version_hasattr2(&mp->m_sb) &&
1003 (mp->m_flags & XFS_MOUNT_NOATTR2)) {
1004 xfs_sb_version_removeattr2(&mp->m_sb);
1005 update_flags |= XFS_SB_FEATURES2;
999 1006
1007 /* update sb_versionnum for the clearing of the morebits */
1008 if (!sbp->sb_features2)
1009 update_flags |= XFS_SB_VERSIONNUM;
1000 } 1010 }
1001 1011
1002 /* 1012 /*