plucky (2) ioctl_xfs_inumbers.2.gz

Provided by: xfslibs-dev_6.12.0-1ubuntu1_amd64 bug

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).