xfs: remove shared supberlock feature checking
authorDave Chinner <dchinner@redhat.com>
Mon, 19 May 2014 21:47:05 +0000 (07:47 +1000)
committerDave Chinner <david@fromorbit.com>
Mon, 19 May 2014 21:47:05 +0000 (07:47 +1000)
We reject any filesystem that is mounted with this feature bit set,
so we don't need to check for it anywhere else. Remove the function
for checking if the feature bit is set and any code that uses it.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
fs/xfs/xfs_fsops.c
fs/xfs/xfs_sb.c
fs/xfs/xfs_sb.h

index b19b015769449c8f40ab75ce22f18b0ceec08220..c31ac96349d27d4a40b1fd3abceeb5a90aa97d4d 100644 (file)
@@ -84,8 +84,6 @@ xfs_fs_geometry(
                                XFS_FSOP_GEOM_FLAGS_IALIGN : 0) |
                        (xfs_sb_version_hasdalign(&mp->m_sb) ?
                                XFS_FSOP_GEOM_FLAGS_DALIGN : 0) |
-                       (xfs_sb_version_hasshared(&mp->m_sb) ?
-                               XFS_FSOP_GEOM_FLAGS_SHARED : 0) |
                        (xfs_sb_version_hasextflgbit(&mp->m_sb) ?
                                XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) |
                        (xfs_sb_version_hassector(&mp->m_sb) ?
index de16dd558195f29b99dda9545f9c7a2e966edd52..c3453b11f5636d228cb5ceb433aa8c67e89c7709 100644 (file)
@@ -291,7 +291,8 @@ xfs_mount_validate_sb(
            (sbp->sb_imax_pct > 100 /* zero sb_imax_pct is valid */)    ||
            sbp->sb_dblocks == 0                                        ||
            sbp->sb_dblocks > XFS_MAX_DBLOCKS(sbp)                      ||
-           sbp->sb_dblocks < XFS_MIN_DBLOCKS(sbp))) {
+           sbp->sb_dblocks < XFS_MIN_DBLOCKS(sbp)                      ||
+           sbp->sb_shared_vn != 0)) {
                xfs_notice(mp, "SB sanity check failed");
                return XFS_ERROR(EFSCORRUPTED);
        }
index 822e62819741752db7a2cc9f2a531f29d4a41ca7..86a964cc6925b2187589f3960d2c68601b88b97f 100644 (file)
@@ -51,11 +51,12 @@ struct xfs_trans;
 
 /*
  * Supported feature bit list is just all bits in the versionnum field because
- * we've used them all up and understand them all.
+ * we've used them all up and understand them all. Except, of course, for the
+ * shared superblock bit, which nobody knows what it does and so is unsupported.
  */
 #define        XFS_SB_VERSION_OKBITS           \
-       (XFS_SB_VERSION_NUMBITS         | \
-        XFS_SB_VERSION_ALLFBITS)
+       ((XFS_SB_VERSION_NUMBITS | XFS_SB_VERSION_ALLFBITS) & \
+               ~XFS_SB_VERSION_SHAREDBIT)
 
 /*
  * There are two words to hold XFS "feature" bits: the original
@@ -341,10 +342,6 @@ static inline bool xfs_sb_good_v4_features(struct xfs_sb *sbp)
             (sbp->sb_features2 & ~XFS_SB_VERSION2_OKBITS)))
                return false;
 
-       /* We don't support shared superblocks - nobody knows what it is */
-       if (sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT)
-               return false;
-
        return true;
 }
 
@@ -397,12 +394,6 @@ static inline bool xfs_sb_version_hasdalign(struct xfs_sb *sbp)
        return (sbp->sb_versionnum & XFS_SB_VERSION_DALIGNBIT);
 }
 
-static inline bool xfs_sb_version_hasshared(struct xfs_sb *sbp)
-{
-       return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_4 &&
-               (sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT);
-}
-
 static inline bool xfs_sb_version_haslogv2(struct xfs_sb *sbp)
 {
        return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 ||
This page took 0.031391 seconds and 5 git commands to generate.