mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-21 16:29:59 +00:00
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>
This commit is contained in:
parent
263997a684
commit
5d074a4f80
4 changed files with 2 additions and 18 deletions
|
@ -92,7 +92,7 @@ xfs_dir_mount(
|
||||||
int nodehdr_size;
|
int nodehdr_size;
|
||||||
|
|
||||||
|
|
||||||
ASSERT(xfs_sb_version_hasdirv2(&mp->m_sb));
|
ASSERT(mp->m_sb.sb_versionnum & XFS_SB_VERSION_DIRV2BIT);
|
||||||
ASSERT((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) <=
|
ASSERT((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) <=
|
||||||
XFS_MAX_BLOCKSIZE);
|
XFS_MAX_BLOCKSIZE);
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,7 @@ xfs_fs_geometry(
|
||||||
if (new_version >= 3) {
|
if (new_version >= 3) {
|
||||||
geo->version = XFS_FSOP_GEOM_VERSION;
|
geo->version = XFS_FSOP_GEOM_VERSION;
|
||||||
geo->flags = XFS_FSOP_GEOM_FLAGS_NLINK |
|
geo->flags = XFS_FSOP_GEOM_FLAGS_NLINK |
|
||||||
|
XFS_FSOP_GEOM_FLAGS_DIRV2 |
|
||||||
(xfs_sb_version_hasattr(&mp->m_sb) ?
|
(xfs_sb_version_hasattr(&mp->m_sb) ?
|
||||||
XFS_FSOP_GEOM_FLAGS_ATTR : 0) |
|
XFS_FSOP_GEOM_FLAGS_ATTR : 0) |
|
||||||
(xfs_sb_version_hasquota(&mp->m_sb) ?
|
(xfs_sb_version_hasquota(&mp->m_sb) ?
|
||||||
|
@ -87,8 +88,6 @@ xfs_fs_geometry(
|
||||||
XFS_FSOP_GEOM_FLAGS_SHARED : 0) |
|
XFS_FSOP_GEOM_FLAGS_SHARED : 0) |
|
||||||
(xfs_sb_version_hasextflgbit(&mp->m_sb) ?
|
(xfs_sb_version_hasextflgbit(&mp->m_sb) ?
|
||||||
XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) |
|
XFS_FSOP_GEOM_FLAGS_EXTFLG : 0) |
|
||||||
(xfs_sb_version_hasdirv2(&mp->m_sb) ?
|
|
||||||
XFS_FSOP_GEOM_FLAGS_DIRV2 : 0) |
|
|
||||||
(xfs_sb_version_hassector(&mp->m_sb) ?
|
(xfs_sb_version_hassector(&mp->m_sb) ?
|
||||||
XFS_FSOP_GEOM_FLAGS_SECTOR : 0) |
|
XFS_FSOP_GEOM_FLAGS_SECTOR : 0) |
|
||||||
(xfs_sb_version_hasasciici(&mp->m_sb) ?
|
(xfs_sb_version_hasasciici(&mp->m_sb) ?
|
||||||
|
|
|
@ -333,15 +333,6 @@ xfs_mount_validate_sb(
|
||||||
xfs_warn(mp, "Offline file system operation in progress!");
|
xfs_warn(mp, "Offline file system operation in progress!");
|
||||||
return XFS_ERROR(EFSCORRUPTED);
|
return XFS_ERROR(EFSCORRUPTED);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Version 1 directory format has never worked on Linux.
|
|
||||||
*/
|
|
||||||
if (unlikely(!xfs_sb_version_hasdirv2(sbp))) {
|
|
||||||
xfs_warn(mp, "file system using version 1 directory format");
|
|
||||||
return XFS_ERROR(ENOSYS);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -403,12 +403,6 @@ static inline bool xfs_sb_version_hasshared(struct xfs_sb *sbp)
|
||||||
(sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT);
|
(sbp->sb_versionnum & XFS_SB_VERSION_SHAREDBIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool xfs_sb_version_hasdirv2(struct xfs_sb *sbp)
|
|
||||||
{
|
|
||||||
return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 ||
|
|
||||||
(sbp->sb_versionnum & XFS_SB_VERSION_DIRV2BIT);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool xfs_sb_version_haslogv2(struct xfs_sb *sbp)
|
static inline bool xfs_sb_version_haslogv2(struct xfs_sb *sbp)
|
||||||
{
|
{
|
||||||
return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 ||
|
return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5 ||
|
||||||
|
|
Loading…
Reference in a new issue