| IOCTL-XFS-INUMBERS(2) | System Calls Manual | IOCTL-XFS-INUMBERS(2) |
ioctl_xfs_inumbers - query allocation information for groups of XFS inodes
#include <xfs/xfs_fs.h>
int ioctl(int fd, XFS_IOC_INUMBERS, struct xfs_inumbers_req *arg);
Query inode allocation information for groups of XFS inodes. This ioctl uses struct xfs_inumbers_req to set up a bulk transfer from the kernel:
struct xfs_inumbers_req {
struct xfs_bulk_ireq hdr;
struct xfs_inumbers inumbers[];
};
See below for the xfs_inumbers structure definition.
struct xfs_bulk_ireq {
uint64_t ino;
uint32_t flags;
uint32_t icount;
uint32_t ocount;
uint32_t agno;
uint64_t reserved[5];
};
hdr describes the information to query. The layout and behavior are documented in the ioctl_xfs_bulkstat(2) manpage and will not be discussed further here.
inumbers is an array of struct xfs_inumbers which is described below. The array must have at least icount elements.
struct xfs_inumbers {
uint64_t xi_startino;
uint64_t xi_allocmask;
uint8_t xi_alloccount;
uint8_t xi_version;
uint8_t xi_padding[6];
};
This structure describes inode usage information for a group of 64 consecutive inode numbers.
xi_startino is the first inode number of this group.
xi_allocmask is a bitmask telling which inodes in this group are allocated. To clarify, bit N is set if inode xi_startino+N is allocated.
xi_alloccount is the number of inodes in this group that are allocated. This should be equal to popcnt(xi_allocmask).
xi_version is the version of this data structure. This will be set to XFS_INUMBERS_VERSION_V5 by the kernel.
xi_padding[6] is zeroed.
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:
This API is specific to XFS filesystem on the Linux kernel.
ioctl(2), ioctl_xfs_bulkstat(2).
| 2019-05-23 | XFS |