извлечь список допустимых номеров inode из файловой системы XFS (extract a list of valid inode numbers from an XFS filesystem)
Имя (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.
Ошибки (Error)
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)