aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-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 ||