summaryrefslogtreecommitdiff
path: root/fs/xfs/scrub/attr.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/xfs/scrub/attr.h')
-rw-r--r--fs/xfs/scrub/attr.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/fs/xfs/scrub/attr.h b/fs/xfs/scrub/attr.h
new file mode 100644
index 000000000000..7db58af56646
--- /dev/null
+++ b/fs/xfs/scrub/attr.h
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+/*
+ * Copyright (C) 2019-2023 Oracle. All Rights Reserved.
+ * Author: Darrick J. Wong <djwong@kernel.org>
+ */
+#ifndef __XFS_SCRUB_ATTR_H__
+#define __XFS_SCRUB_ATTR_H__
+
+/*
+ * Temporary storage for online scrub and repair of extended attributes.
+ */
+struct xchk_xattr_buf {
+ /* Bitmap of used space in xattr leaf blocks and shortform forks. */
+ unsigned long *usedmap;
+
+ /* Bitmap of free space in xattr leaf blocks. */
+ unsigned long *freemap;
+
+ /* Memory buffer used to hold salvaged xattr names. */
+ unsigned char *name;
+
+ /* Memory buffer used to extract xattr values. */
+ void *value;
+ size_t value_sz;
+};
+
+bool xchk_xattr_set_map(struct xfs_scrub *sc, unsigned long *map,
+ unsigned int start, unsigned int len);
+int xchk_setup_xattr_buf(struct xfs_scrub *sc, size_t value_size);
+
+#endif /* __XFS_SCRUB_ATTR_H__ */