xref: /openbmc/linux/fs/xfs/scrub/attr.h (revision 80069284)
13addd248SDarrick J. Wong /* SPDX-License-Identifier: GPL-2.0-or-later */
23addd248SDarrick J. Wong /*
3ecc73f8aSDarrick J. Wong  * Copyright (C) 2019-2023 Oracle.  All Rights Reserved.
4739a2fe0SDarrick J. Wong  * Author: Darrick J. Wong <djwong@kernel.org>
53addd248SDarrick J. Wong  */
63addd248SDarrick J. Wong #ifndef __XFS_SCRUB_ATTR_H__
73addd248SDarrick J. Wong #define __XFS_SCRUB_ATTR_H__
83addd248SDarrick J. Wong 
93addd248SDarrick J. Wong /*
103addd248SDarrick J. Wong  * Temporary storage for online scrub and repair of extended attributes.
113addd248SDarrick J. Wong  */
123addd248SDarrick J. Wong struct xchk_xattr_buf {
13*80069284SDarrick J. Wong 	/* Bitmap of used space in xattr leaf blocks. */
14*80069284SDarrick J. Wong 	unsigned long		*usedmap;
15*80069284SDarrick J. Wong 
1691781ff5SDarrick J. Wong 	/* Bitmap of free space in xattr leaf blocks. */
1791781ff5SDarrick J. Wong 	unsigned long		*freemap;
1891781ff5SDarrick J. Wong 
196d6cceddSDarrick J. Wong 	/* Size of @buf, in bytes. */
206d6cceddSDarrick J. Wong 	size_t			sz;
216d6cceddSDarrick J. Wong 
223addd248SDarrick J. Wong 	/*
23*80069284SDarrick J. Wong 	 * Memory buffer -- used for extracting attr values while walking the
24*80069284SDarrick J. Wong 	 * attributes.
253addd248SDarrick J. Wong 	 */
265224f790SGustavo A. R. Silva 	uint8_t			buf[];
273addd248SDarrick J. Wong };
283addd248SDarrick J. Wong 
293addd248SDarrick J. Wong /* A place to store attribute values. */
303addd248SDarrick J. Wong static inline uint8_t *
313addd248SDarrick J. Wong xchk_xattr_valuebuf(
323addd248SDarrick J. Wong 	struct xfs_scrub	*sc)
333addd248SDarrick J. Wong {
343addd248SDarrick J. Wong 	struct xchk_xattr_buf	*ab = sc->buf;
353addd248SDarrick J. Wong 
363addd248SDarrick J. Wong 	return ab->buf;
373addd248SDarrick J. Wong }
383addd248SDarrick J. Wong 
393addd248SDarrick J. Wong #endif	/* __XFS_SCRUB_ATTR_H__ */
40