]> www.infradead.org Git - users/hch/xfs.git/commitdiff
xfs: export realtime group geometry via XFS_FSOP_GEOM
authorDarrick J. Wong <djwong@kernel.org>
Thu, 15 Aug 2024 18:48:10 +0000 (11:48 -0700)
committerChristoph Hellwig <hch@lst.de>
Sun, 22 Sep 2024 08:01:25 +0000 (10:01 +0200)
Export the realtime geometry information so that userspace can query it.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_fs.h
fs/xfs/libxfs/xfs_sb.c

index 1a9b9cec651698ebec31c92e7d341783da52b892..7119a67c94ac1cd52a5e1a6b6bf9ca90029f0bc0 100644 (file)
@@ -187,7 +187,9 @@ struct xfs_fsop_geom {
        __u32           logsunit;       /* log stripe unit, bytes       */
        uint32_t        sick;           /* o: unhealthy fs & rt metadata */
        uint32_t        checked;        /* o: checked fs & rt metadata  */
-       __u64           reserved[17];   /* reserved space               */
+       __u32           rgextents;      /* rt extents in a realtime group */
+       __u32           rgcount;        /* number of realtime groups    */
+       __u64           reserved[16];   /* reserved space               */
 };
 
 #define XFS_FSOP_GEOM_SICK_COUNTERS    (1 << 0)  /* summary counters */
index 72542f6798989a52c40fe87900d9de710f8c4591..e49f565309a597b35231e7b915ce9c01e4792a17 100644 (file)
@@ -1402,6 +1402,11 @@ xfs_fs_geometry(
                return;
 
        geo->version = XFS_FSOP_GEOM_VERSION_V5;
+
+       if (xfs_has_rtgroups(mp)) {
+               geo->rgcount = sbp->sb_rgcount;
+               geo->rgextents = sbp->sb_rgextents;
+       }
 }
 
 /* Read a secondary superblock. */