DOKK / manpages / debian 12 / xfslibs-dev / ioctl_xfs_ag_geometry.2.en
IOCTL-XFS-AG-GEOMETRY(2) System Calls Manual IOCTL-XFS-AG-GEOMETRY(2)

ioctl_xfs_ag_geometry - query XFS allocation group geometry information

#include <xfs/xfs_fs.h>

int ioctl(int fd, XFS_IOC_AG_GEOMETRY, struct xfs_ag_geometry *arg);

This XFS ioctl retrieves the geometry information for a given allocation group. The geometry information is conveyed in a structure of the following form:


struct xfs_ag_geometry {
	uint32_t  ag_number;
	uint32_t  ag_length;
	uint32_t  ag_freeblks;
	uint32_t  ag_icount;
	uint32_t  ag_ifree;
	uint32_t  ag_sick;
	uint32_t  ag_checked;
	uint32_t  ag_flags;
	uint64_t  ag_reserved[12];
};

The caller must set this field to the index of the allocation group that the caller wishes to learn about.
The length of the allocation group is returned in this field, in units of filesystem blocks.
The number of free blocks in the allocation group is returned in this field, in units of filesystem blocks.
The number of inode records allocated in this allocation group is returned in this field.
The number of unused inode records (of the space allocated) in this allocation group is returned in this field.
The caller can set this field to change the operational behavior of the ioctl. Currently no flags are defined, so this field must be zero.
All reserved fields will be set to zero on return.

The fields ag_sick and ag_checked indicate the relative health of various allocation group metadata:

If a given sick flag is set in ag_sick, then that piece of metadata has been observed to be damaged. The same bit will be set in ag_checked.
If a given sick flag is set in ag_checked and is not set in ag_sick, then that piece of metadata has been checked and is not faulty.
If a given sick flag is not set in ag_checked, then no conclusion can be made.

The following flags apply to these fields:

Allocation group superblock.
Free space header.
Free space reserve list.
Inode header.
Free space btrees.
Inode btrees.
Reverse mapping btree.
Reference count btree.

On error, -1 is returned, and errno is set to indicate the error.

Error codes can be one of, but are not limited to, the following:

Metadata checksum validation failed while performing the query.
Metadata corruption was encountered while performing the query.
The specified allocation group number is not valid for this filesystem.
An I/O error was encountered while performing the query.

This API is specific to XFS filesystem on the Linux kernel.

ioctl(2)

2019-08-30 XFS