| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * Copyright (c) 2019 Oracle, Inc. |
| * All Rights Reserved. |
| */ |
| #ifndef __LIBFROG_SCRUB_H__ |
| #define __LIBFROG_SCRUB_H__ |
| |
| /* Group the scrub types by principal filesystem object. */ |
| enum xfrog_scrub_group { |
| XFROG_SCRUB_GROUP_NONE, /* not metadata */ |
| XFROG_SCRUB_GROUP_AGHEADER, /* per-AG header */ |
| XFROG_SCRUB_GROUP_PERAG, /* per-AG metadata */ |
| XFROG_SCRUB_GROUP_FS, /* per-FS metadata */ |
| XFROG_SCRUB_GROUP_INODE, /* per-inode metadata */ |
| XFROG_SCRUB_GROUP_ISCAN, /* metadata requiring full inode scan */ |
| XFROG_SCRUB_GROUP_SUMMARY, /* summary 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_group group; |
| }; |
| |
| 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__ */ |