aboutsummaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorDave Chinner <dchinner@redhat.com>2014-05-19 17:46:55 -0400
committerDave Chinner <david@fromorbit.com>2014-05-19 17:46:55 -0400
commit5d074a4f8005b988c9d48d29250e36ad64083252 (patch)
treeb749731540b3865f0cdd708970dbda3cd3255a64 /fs/xfs
parent263997a6842b27a49f42bd795c5dd12242917b22 (diff)
xfs: don't need dirv2 checks anymore
If the the V2 directory feature bit is not set in the superblock feature mask the filesystem will fail the good version check. Hence we don't need any other version checking on the dir2 feature bit in the code as the filesystem will not mount without it set. Remove the checking code. Signed-off-by: Dave Chinner <dchinner@redhat.com> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/xfs_dir2.c2
-rw-r--r--fs/xfs/xfs_fsops.c3
-rw-r--r--fs/xfs/xfs_sb.c9
-rw-r--r--fs/xfs/xfs_sb.h6
4 files changed, 2 insertions, 18 deletions
diff --git a/fs/xfs/xfs_dir2.c b/fs/xfs/xfs_dir2.c
index fda46253966a..0c8ba87a1e7a 100644
--- a/fs/xfs/xfs_dir2.c
+++ b/fs/xfs/xfs_dir2.c
@@ -92,7 +92,7 @@ xfs_dir_mount(
92 int nodehdr_size; 92 int nodehdr_size;
93 93
94 94
95 ASSERT(xfs_sb_version_hasdirv2(&mp->m_sb)); 95 ASSERT(mp->m_sb.sb_versionnum & XFS_SB_VERSION_DIRV2BIT);
96 ASSERT((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) <= 96 ASSERT((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) <=
97 XFS_MAX_BLOCKSIZE); 97 XFS_MAX_BLOCKSIZE);
98 98
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index d49c67acabf8..b19b01576944 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
@@ -75,6 +75,7 @@ xfs_fs_geometry(
75 if (new_version >= 3) { 75 if (new_version >= 3) {
76 geo->version = XFS_FSOP_GEOM_VERSION; 76 geo->version = XFS_FSOP_GEOM_VERSION;
77 geo->flags = XFS_FSOP_GEOM_FLAGS_NLINK | 77 geo->flags = XFS_FSOP_GEOM_FLAGS_NLINK |
78 XFS_FSOP_GEOM_FLAGS_DIRV2 |
78 (xfs_sb_version_hasattr(&mp->m_sb) ? 79 (xfs_sb_version_hasattr(&mp->m_sb) ?
79 XFS_FSOP_GEOM_FLAGS_ATTR : 0) | 80 XFS_FSOP_GEOM_FLAGS_ATTR : 0) |
80 (xfs_sb_version_hasquota(&mp->m_sb) ? 81 (xfs_sb_version_hasquota(&mp->m_sb) ?
@@ -87,8 +88,6 @@ xfs_fs_geometry(
87 XFS_FSOP_GEOM_FLAGS_SHARED : 0) | 88 XFS_FSOP_GEOM_FLAGS_SHARED : 0) |
88 (xfs_sb_version_hasextflgbit(&mp->m_sb) ? 89 (xfs_sb_version_hasextflgbit(&mp->m_sb) ?
89 XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) | 90 XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) |
90 (xfs_sb_version_hasdirv2(&mp->m_sb) ?
91 XFS_FSOP_GEOM_FLAGS_DIRV2 : 0) |
92 (xfs_sb_version_hassector(&mp->m_sb) ? 91 (xfs_sb_version_hassector(&mp->m_sb) ?
93 XFS_FSOP_GEOM_FLAGS_SECTOR : 0) | 92 XFS_FSOP_GEOM_FLAGS_SECTOR : 0) |
94 (xfs_sb_version_hasasciici(&mp->m_sb) ? 93 (xfs_sb_version_hasasciici(&mp->m_sb) ?
diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c
index 8baf61afae1d..de16dd558195 100644
--- a/fs/xfs/xfs_sb.c
+++ b/fs/xfs/xfs_sb.c
@@ -333,15 +333,6 @@ xfs_mount_validate_sb(
333 xfs_warn(mp, "Offline file system operation in progress!"); 333 xfs_warn(mp, "Offline file system operation in progress!");
334 return XFS_ERROR(EFSCORRUPTED); 334 return XFS_ERROR(EFSCORRUPTED);
335 } 335 }
336
337 /*
338 * Version 1 directory format has never worked on Linux.
339 */
340 if (unlikely(!xfs_sb_version_hasdirv2(sbp))) {
341 xfs_warn(mp, "file system using version 1 directory format");
342 return XFS_ERROR(ENOSYS);
343 }
344
345 return 0; 336 return 0;
346} 337}
347 338
diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h
index a2826cf57d78..822e62819741 100644
--- a/fs/xfs/xfs_sb.h
+++ b/fs/xfs/xfs_sb.h
@@ -403,12 +403,6 @@ static inline bool xfs_sb_version_hasshared(struct xfs_sb *sbp)
403 (sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT); 403 (sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT);
404} 404}
405 405
406static inline bool xfs_sb_version_hasdirv2(struct xfs_sb *sbp)
407{
408 return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 ||
409 (sbp->sb_versionnum & XFS_SB_VERSION_DIRV2BIT);
410}
411
412static inline bool xfs_sb_version_haslogv2(struct xfs_sb *sbp) 406static inline bool xfs_sb_version_haslogv2(struct xfs_sb *sbp)
413{ 407{
414 return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 || 408 return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 ||