On Tue, Dec 14, 2021 at 02:15:10PM +0530, Chandan Babu R wrote: > XFS_SB_FEAT_INCOMPAT_NREXT64 incompat feature bit will be set on filesystems > which support large per-inode extent counters. This commit defines the new > incompat feature bit and the corresponding per-fs feature bit (along with > inline functions to work on it). > > Signed-off-by: Chandan Babu R <chandan.babu@xxxxxxxxxx> > --- > fs/xfs/libxfs/xfs_format.h | 1 + > fs/xfs/libxfs/xfs_sb.c | 3 +++ > fs/xfs/xfs_mount.h | 2 ++ > 3 files changed, 6 insertions(+) > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > index e5654b578ec0..7972cbc22608 100644 > --- a/fs/xfs/libxfs/xfs_format.h > +++ b/fs/xfs/libxfs/xfs_format.h > @@ -372,6 +372,7 @@ xfs_sb_has_ro_compat_feature( > #define XFS_SB_FEAT_INCOMPAT_META_UUID (1 << 2) /* metadata UUID */ > #define XFS_SB_FEAT_INCOMPAT_BIGTIME (1 << 3) /* large timestamps */ > #define XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR (1 << 4) /* needs xfs_repair */ > +#define XFS_SB_FEAT_INCOMPAT_NREXT64 (1 << 5) /* 64-bit data fork extent counter */ EXT6, I like it. :P Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> --D > #define XFS_SB_FEAT_INCOMPAT_ALL \ > (XFS_SB_FEAT_INCOMPAT_FTYPE| \ > XFS_SB_FEAT_INCOMPAT_SPINODES| \ > diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c > index f4e84aa1d50a..bd632389ae92 100644 > --- a/fs/xfs/libxfs/xfs_sb.c > +++ b/fs/xfs/libxfs/xfs_sb.c > @@ -124,6 +124,9 @@ xfs_sb_version_to_features( > features |= XFS_FEAT_BIGTIME; > if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NEEDSREPAIR) > features |= XFS_FEAT_NEEDSREPAIR; > + if (sbp->sb_features_incompat & XFS_SB_FEAT_INCOMPAT_NREXT64) > + features |= XFS_FEAT_NREXT64; > + > return features; > } > > diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h > index 00720a02e761..10941481f7e6 100644 > --- a/fs/xfs/xfs_mount.h > +++ b/fs/xfs/xfs_mount.h > @@ -276,6 +276,7 @@ typedef struct xfs_mount { > #define XFS_FEAT_INOBTCNT (1ULL << 23) /* inobt block counts */ > #define XFS_FEAT_BIGTIME (1ULL << 24) /* large timestamps */ > #define XFS_FEAT_NEEDSREPAIR (1ULL << 25) /* needs xfs_repair */ > +#define XFS_FEAT_NREXT64 (1ULL << 26) /* 64-bit inode extent counters */ > > /* Mount features */ > #define XFS_FEAT_NOATTR2 (1ULL << 48) /* disable attr2 creation */ > @@ -338,6 +339,7 @@ __XFS_HAS_FEAT(realtime, REALTIME) > __XFS_HAS_FEAT(inobtcounts, INOBTCNT) > __XFS_HAS_FEAT(bigtime, BIGTIME) > __XFS_HAS_FEAT(needsrepair, NEEDSREPAIR) > +__XFS_HAS_FEAT(nrext64, NREXT64) > > /* > * Mount features > -- > 2.30.2 >