diff options
Diffstat (limited to 'fs/xfs/scrub/attr.h')
| -rw-r--r-- | fs/xfs/scrub/attr.h | 31 |
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__ */ |
