Man page - ioctl_xfs_scrubv_metadata(2)
Packages contas this manual
- ioctl_xfs_rtgroup_geometry(2)
- ioctl_xfs_fsgetxattra(2)
- attr_list_by_handle(3)
- ioctl_xfs_exchange_range(2)
- ioctl_xfs_ag_geometry(2)
- ioctl_xfs_fsgeometry(2)
- ioctl_xfs_goingdown(2)
- ioctl_xfs_fsinumbers(2)
- ioctl_xfs_fsbulkstat(2)
- path_to_fshandle(3)
- ioctl_xfs_start_commit(2)
- ioctl_xfs_fscounts(2)
- ioctl_xfs_getbmapa(2)
- getparents_by_handle(3)
- ioctl_xfs_scrub_metadata(2)
- path_to_handle(3)
- ioctl_xfs_getresblks(2)
- free_handle(3)
- ioctl_xfs_getbmapx(2)
- ioctl_xfs_inumbers(2)
- xfsctl(3)
- ioctl_xfs_fsgetxattr(2)
- ioctl_xfs_bulkstat(2)
- ioctl_xfs_fssetxattr(2)
- open_by_handle(3)
- fd_to_handle(3)
- ioctl_xfs_commit_range(2)
- ioctl_xfs_getbmap(2)
- ioctl_xfs_scrubv_metadata(2)
- getparentpaths_by_handle(3)
- attr_multi_by_handle(3)
- ioctl_xfs_setresblks(2)
- handle_to_fshandle(3)
- readlink_by_handle(3)
- ioctl_xfs_getparents(2)
- fssetdm_by_handle(3)
apt-get install xfslibs-dev
Manual
| IOCTL-XFS-SCRUBV-METADATA(2) | System Calls Manual | IOCTL-XFS-SCRUBV-METADATA(2) |
NAME
ioctl_xfs_scrubv_metadata - check a lot of XFS filesystem metadata
SYNOPSIS
#include <xfs/xfs_fs.h>
int ioctl(int dest_fd, XFS_IOC_SCRUBV_METADATA, struct xfs_scrub_vec_head *arg);
DESCRIPTION
This XFS ioctl asks the kernel driver to examine several pieces of filesystem metadata for errors or suboptimal metadata. Multiple scrub types can be invoked to target a single filesystem object. See ioctl_xfs_scrub_metadata(2) for a discussion of metadata validation, and documentation of the various XFS_SCRUB_TYPE and XFS_SCRUB_FLAGS values referenced below.
The types and location of the metadata to scrub are conveyed as a vector with a header of the following form:
struct xfs_scrub_vec_head {
__u64 svh_ino;
__u32 svh_gen;
__u32 svh_agno;
__u32 svh_flags;
__u16 svh_rest_us;
__u16 svh_nr;
__u64 svh_reserved;
__u64 svh_vectors;
};
The field svh_ino, svh_gen, and svh_agno correspond to the sm_ino, sm_gen, and sm_agno fields of the regular scrub ioctl. Exactly one filesystem object can be specified in a single call. The kernel will proceed with each vector in svh_vectors until progress is no longer possible.
The field svh_rest_us specifies an amount of time to pause between each scrub invocation to give the system a chance to process other requests.
The field svh_nr specifies the number of vectors in the svh_vectors array.
The field svh_vectors is a pointer to an array of struct xfs_scrub_vec structures.
The field svh_reserved must be zero.
Each vector has the following form:
struct xfs_scrub_vec {
__u32 sv_type;
__u32 sv_flags;
__s32 sv_ret;
__u32 sv_reserved;
};
The fields sv_type and sv_flags indicate the type of metadata to check and the behavioral changes that userspace will permit of the kernel. The sv_flags field will be updated upon completion of the scrub call. See the documentation of XFS_SCRUB_TYPE_* and XFS_SCRUB_[IO]FLAG_* values in ioctl_xfs_scrub_metadata(2) for a detailed description of their purpose.
If a vector's sv_type field is set to the value XFS_SCRUB_TYPE_BARRIER, the kernel will stop processing vectors and return to userspace if a scrubber flags corruption by setting one of the XFS_SCRUB_OFLAG_* values in sv_flags or returns an operation error in sv_ret. Otherwise, the kernel returns only after processing all vectors.
The sv_ret field is set to the return value of the scrub function. See the RETURN VALUE section of the ioctl_xfs_scrub_metadata(2) manual page for more information.
The sv_reserved field must be zero.
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:
CONFORMING TO
This API is specific to XFS filesystem on the Linux kernel.
NOTES
These operations may block other filesystem operations for a long time. A calling process can stop the operation by being sent a fatal signal, but non-fatal signals are blocked.
SEE ALSO
ioctl(2) ioctl_xfs_scrub_metadata(2) xfs_scrub(8) xfs_repair(8)
| 2024-05-21 | XFS |