]> www.infradead.org Git - linux.git/commitdiff
xfs: export realtime group geometry via XFS_FSOP_GEOM
authorDarrick J. Wong <djwong@kernel.org>
Mon, 4 Nov 2024 04:19:18 +0000 (20:19 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 5 Nov 2024 21:38:39 +0000 (13:38 -0800)
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 faa38a7d1eb0198da74ffdf58478067b5194e537..5c224d03270ce9a4dbfad678036064f8e21e27bd 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 6b0757d60cf3af3efa743c41d9dd0c2b36bf04b3..b1e12c7e7dbe23376d2d0990683faedbb9bc496c 100644 (file)
@@ -1413,6 +1413,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. */