Re: [PATCH 26/45] xfs: convert mount flags to features

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/19/22 6:19 PM, Darrick J. Wong wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> Source kernel commit: 0560f31a09e523090d1ab2bfe21c69d028c2bdf2
> 
> Replace m_flags feature checks with xfs_has_<feature>() calls and
> rework the setup code to set flags in m_features.
> 
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx>
> Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx>
> ---
>  include/xfs_mount.h    |   11 +++++++++++
>  libxfs/xfs_attr.c      |    4 ++--
>  libxfs/xfs_attr_leaf.c |   41 +++++++++++++++++++++++------------------
>  libxfs/xfs_bmap.c      |    4 ++--
>  libxfs/xfs_ialloc.c    |   10 ++++------
>  5 files changed, 42 insertions(+), 28 deletions(-)
> 
> 
> diff --git a/include/xfs_mount.h b/include/xfs_mount.h
> index a995140d..d4b4ccdc 100644
> --- a/include/xfs_mount.h
> +++ b/include/xfs_mount.h
> @@ -197,6 +197,17 @@ __XFS_HAS_FEAT(inobtcounts, INOBTCNT)
>  __XFS_HAS_FEAT(bigtime, BIGTIME)
>  __XFS_HAS_FEAT(needsrepair, NEEDSREPAIR)
>  
> +/* Kernel mount features that we don't support */
> +#define __XFS_UNSUPP_FEAT(name) \
> +static inline bool xfs_has_ ## name (struct xfs_mount *mp) \
> +{ \
> +	return false; \
> +}
> +__XFS_UNSUPP_FEAT(wsync)
> +__XFS_UNSUPP_FEAT(noattr2)
> +__XFS_UNSUPP_FEAT(ikeep)
> +__XFS_UNSUPP_FEAT(swalloc)

So I'd like to add small_inums to the above list:

+__XFS_UNSUPP_FEAT(small_inums)

and use that in xfs_set_inode_alloc() here as was done in kernelspace, i.e.:

diff --git a/libxfs/init.c b/libxfs/init.c
index 7d94b721..364c3578 100644
--- a/libxfs/init.c
+++ b/libxfs/init.c
@@ -540,7 +540,7 @@ xfs_set_inode_alloc(
 	 * sufficiently large, set XFS_MOUNT_32BITINODES if we must alter
 	 * the allocator to accommodate the request.
 	 */
-	if ((mp->m_flags & XFS_MOUNT_SMALL_INUMS) && ino > XFS_MAXINUMBER_32)
+	if (xfs_has_small_inums(mp) && ino > XFS_MAXINUMBER_32)
 		mp->m_flags |= XFS_MOUNT_32BITINODES;
 	else
 		mp->m_flags &= ~XFS_MOUNT_32BITINODES;


That will let us keep this "backport libxfs" series more or less the
same as kernelspace, without needing to gut xfs_set_inode_alloc() as
got proposed in

[PATCH v1.1 39/45] libxfs: remove pointless *XFS_MOUNT* flags

and followups to preserve userspace inode allocation behavior.

If we want to remove dead code from the userspace-specific version of
xfs_set_inode_alloc() I think we can/should do that separately.

Thanks,
-Eric




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux