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