ioctl_xfs_ag_geometry2
Query xfs allocation group geometry information
Usage
#include <xfs/xfs_fs.h>
int ioctl(int fd, XFS_IOC_AG_GEOMETRY, struct xfs_ag_geometry *arg);
Overview
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];
};
- ag_number
-
The caller must set this field to the index of the allocation group that the caller wishes to learn about.
- ag_length
-
The length of the allocation group is returned in this field, in units of filesystem blocks.
- ag_freeblks
-
The number of free blocks in the allocation group is returned in this field, in units of filesystem blocks.
- ag_icount
-
The number of inode records allocated in this allocation group is returned in this field.
- ag_ifree
-
The number of unused inode records (of the space allocated) in this allocation group is returned in this field.
- ag_flags
-
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.
- ag_reserved
-
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. |
Return value
On error, -1 is returned, and errno is set to indicate the error.
Errors
Error codes can be one of, but are not limited to, the following:
EFSBADCRC
|
Metadata checksum validation failed while performing the query. |
|---|---|
EFSCORRUPTED
|
Metadata corruption was encountered while performing the query. |
EINVAL
|
The specified allocation group number is not valid for this filesystem. |
EIO
|
An I/O error was encountered while performing the query. |
Releases
Unchanged in 4 releases since Debian 11 (Bullseye).