1 /* SPDX-License-Identifier: GPL-2.0-or-later */
3 * Copyright (c) 2019 Oracle, Inc.
6 #ifndef __LIBFROG_SCRUB_H__
7 #define __LIBFROG_SCRUB_H__
9 /* Type info and names for the scrub types. */
10 enum xfrog_scrub_type
{
11 XFROG_SCRUB_TYPE_NONE
, /* not metadata */
12 XFROG_SCRUB_TYPE_AGHEADER
, /* per-AG header */
13 XFROG_SCRUB_TYPE_PERAG
, /* per-AG metadata */
14 XFROG_SCRUB_TYPE_FS
, /* per-FS metadata */
15 XFROG_SCRUB_TYPE_INODE
, /* per-inode metadata */
18 /* Catalog of scrub types and names, indexed by XFS_SCRUB_TYPE_* */
19 struct xfrog_scrub_descr
{
22 enum xfrog_scrub_type type
;
27 * The type of metadata checked by this scrubber is a summary of other types
28 * of metadata. This scrubber should be run after all the others.
30 #define XFROG_SCRUB_DESCR_SUMMARY (1 << 0)
32 extern const struct xfrog_scrub_descr xfrog_scrubbers
[XFS_SCRUB_TYPE_NR
];
34 int xfrog_scrub_metadata(struct xfs_fd
*xfd
, struct xfs_scrub_metadata
*meta
);
36 #endif /* __LIBFROG_SCRUB_H__ */