IOCT-XF-FSINUMBERS
Section: System Calls (2)
Updated: 201-0-17
Index
Return to Main Contents
NAME
ioctl_xfs_fsinumbers - extract a list of valid inode numbers from an XFS filesystem
SYNOPSIS
#include <xfs/xfs_fs.h>
int ioctl(int fd, XFS_IOC_FSINUMBERS, struct xfs_fsop_bulkreq *arg);
DESCRIPTION
Queries inode allocation information from an XFS filesystem.
It is intended to be called iteratively to obtain the entire set of inodes.
These ioctls use
struct xfs_fsop_bulkreq
to set up a bulk transfer with the kernel:
struct xfs_fsop_bulkreq {
__u64 *lastip;
__s32 count;
void *ubuffer;
__s32 *ocount;
};
lastip
points to a value that will receive the number of the "last inode."
This should be set to one less than the number of the first inode for which the
caller wants information, or zero to start with the first inode in the
filesystem.
After the call, this value will be set to the number of the last inode for
which information is supplied.
This field will not be updated if
ocount
is NULL.
count
is the number of elements in the
ubuffer
array and therefore the number of inode groups for which to return allocation
information.
ocount
points to a value that will receive the number of records returned.
An output value of zero means that there are no more inode groups left to
enumerate.
If this value is NULL, then neither
ocount
nor
lastip
will be updated.
ubuffer
points to a memory buffer where inode group information will be copied.
This buffer must be an array of
struct xfs_inogrp
which is described below.
The array must have at least
count
elements.
struct xfs_inogrp {
__u64 xi_startino;
__s32 xi_alloccount;
__u64 xi_allocmask;
}
This structure describes inode usage information for a group of 64 consecutive
inode numbers.
The fields are as follows:
xi_startino
is the first inode number of this group.
xi_alloccount
is the number of bits that are set in
xi_allocmask.
This is the number of inodes allocated in this group.
xi_allocmask
is a bitmask of inodes that are allocated in this inode group.
The bitmask is 64 bits long, and the least significant bit corresponds to inode
xi_startino.
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)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- CONFORMING TO
-
- SEE ALSO
-