xfs: Introduce XFS_FSOP_GEOM_FLAGS_NREXT64
authorChandan Babu R <chandan.babu@oracle.com>
Tue, 16 Nov 2021 07:56:54 +0000 (07:56 +0000)
committerChandan Babu R <chandan.babu@oracle.com>
Mon, 11 Apr 2022 04:11:19 +0000 (04:11 +0000)
XFS_FSOP_GEOM_FLAGS_NREXT64 indicates that the current filesystem instance
supports 64-bit per-inode extent counters.

Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
fs/xfs/libxfs/xfs_fs.h
fs/xfs/libxfs/xfs_sb.c

index 505533c..1f7238d 100644 (file)
@@ -236,6 +236,7 @@ typedef struct xfs_fsop_resblks {
 #define XFS_FSOP_GEOM_FLAGS_REFLINK    (1 << 20) /* files can share blocks */
 #define XFS_FSOP_GEOM_FLAGS_BIGTIME    (1 << 21) /* 64-bit nsec timestamps */
 #define XFS_FSOP_GEOM_FLAGS_INOBTCNT   (1 << 22) /* inobt btree counter */
+#define XFS_FSOP_GEOM_FLAGS_NREXT64    (1 << 23) /* large extent counters */
 
 /*
  * Minimum and maximum sizes need for growth checks.
index bd63238..e292a19 100644 (file)
@@ -1138,6 +1138,8 @@ xfs_fs_geometry(
        } else {
                geo->logsectsize = BBSIZE;
        }
+       if (xfs_has_large_extent_counts(mp))
+               geo->flags |= XFS_FSOP_GEOM_FLAGS_NREXT64;
        geo->rtsectsize = sbp->sb_blocksize;
        geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp);