xfs: export zoned geometry via XFS_FSOP_GEOM
Export the zoned geometry information so that userspace can query it. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
This commit is contained in:
@@ -189,7 +189,9 @@ struct xfs_fsop_geom {
|
||||
uint32_t checked; /* o: checked fs & rt metadata */
|
||||
__u32 rgextents; /* rt extents in a realtime group */
|
||||
__u32 rgcount; /* number of realtime groups */
|
||||
__u64 reserved[16]; /* reserved space */
|
||||
__u64 rtstart; /* start of internal rt section */
|
||||
__u64 rtreserved; /* RT (zoned) reserved blocks */
|
||||
__u64 reserved[14]; /* reserved space */
|
||||
};
|
||||
|
||||
#define XFS_FSOP_GEOM_SICK_COUNTERS (1 << 0) /* summary counters */
|
||||
@@ -247,6 +249,7 @@ typedef struct xfs_fsop_resblks {
|
||||
#define XFS_FSOP_GEOM_FLAGS_EXCHANGE_RANGE (1 << 24) /* exchange range */
|
||||
#define XFS_FSOP_GEOM_FLAGS_PARENT (1 << 25) /* linux parent pointers */
|
||||
#define XFS_FSOP_GEOM_FLAGS_METADIR (1 << 26) /* metadata directories */
|
||||
#define XFS_FSOP_GEOM_FLAGS_ZONED (1 << 27) /* zoned rt device */
|
||||
|
||||
/*
|
||||
* Minimum and maximum sizes need for growth checks.
|
||||
|
||||
@@ -1569,6 +1569,8 @@ xfs_fs_geometry(
|
||||
geo->flags |= XFS_FSOP_GEOM_FLAGS_EXCHANGE_RANGE;
|
||||
if (xfs_has_metadir(mp))
|
||||
geo->flags |= XFS_FSOP_GEOM_FLAGS_METADIR;
|
||||
if (xfs_has_zoned(mp))
|
||||
geo->flags |= XFS_FSOP_GEOM_FLAGS_ZONED;
|
||||
geo->rtsectsize = sbp->sb_blocksize;
|
||||
geo->dirblocksize = xfs_dir2_dirblock_bytes(sbp);
|
||||
|
||||
@@ -1589,6 +1591,10 @@ xfs_fs_geometry(
|
||||
geo->rgcount = sbp->sb_rgcount;
|
||||
geo->rgextents = sbp->sb_rgextents;
|
||||
}
|
||||
if (xfs_has_zoned(mp)) {
|
||||
geo->rtstart = sbp->sb_rtstart;
|
||||
geo->rtreserved = sbp->sb_rtreserved;
|
||||
}
|
||||
}
|
||||
|
||||
/* Read a secondary superblock. */
|
||||
|
||||
Reference in New Issue
Block a user