blob: e43d8c244e48c89586d552884c20648150fcbe4e [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright (c) 2019 Oracle, Inc.
* All Rights Reserved.
*/
#ifndef __LIBFROG_SCRUB_H__
#define __LIBFROG_SCRUB_H__
/* Type info and names for the scrub types. */
enum xfrog_scrub_type {
XFROG_SCRUB_TYPE_NONE, /* not metadata */
XFROG_SCRUB_TYPE_AGHEADER, /* per-AG header */
XFROG_SCRUB_TYPE_PERAG, /* per-AG metadata */
XFROG_SCRUB_TYPE_FS, /* per-FS metadata */
XFROG_SCRUB_TYPE_INODE, /* per-inode metadata */
};
/* Catalog of scrub types and names, indexed by XFS_SCRUB_TYPE_* */
struct xfrog_scrub_descr {
const char *name;
const char *descr;
enum xfrog_scrub_type type;
unsigned int flags;
};
/*
* The type of metadata checked by this scrubber is a summary of other types
* of metadata. This scrubber should be run after all the others.
*/
#define XFROG_SCRUB_DESCR_SUMMARY (1 << 0)
extern const struct xfrog_scrub_descr xfrog_scrubbers[XFS_SCRUB_TYPE_NR];
int xfrog_scrub_metadata(struct xfs_fd *xfd, struct xfs_scrub_metadata *meta);
#endif /* __LIBFROG_SCRUB_H__ */