IOCT-XF-INUMBERS
Section: System Calls (2)
Updated: 201-0-23
Index
Return to Main Contents
NAME
ioctl_xfs_inumbers - query allocation information for groups of XFS inodes
SYNOPSIS
#include <xfs/xfs_fs.h>
int ioctl(int fd, XFS_IOC_INUMBERS, struct xfs_inumbers_req *arg);
DESCRIPTION
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.
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:
- EFAULT
-
The kernel was not able to copy into the userspace buffer.
- EFSBADCRC
-
Metadata checksum validation failed while performing the query.
- EFSCORRUPTED
-
Metadata corruption was encountered while performing the query.
- EINVAL
-
One of the arguments was not valid.
- EIO
-
An I/O error was encountered while performing the query.
- ENOMEM
-
There was insufficient memory to perform the query.
CONFORMING TO
This API is specific to XFS filesystem on the Linux kernel.
SEE ALSO
ioctl(2),
ioctl_xfs_bulkstat(2).
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- CONFORMING TO
-
- SEE ALSO
-