1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (c) 2020-2024 Oracle.  All Rights Reserved.
4 * Author: Darrick J. Wong <djwong@kernel.org>
5 */
6#ifndef __XFS_SCRUB_RTSUMMARY_H__
7#define __XFS_SCRUB_RTSUMMARY_H__
8
9struct xchk_rtsummary {
10#ifdef CONFIG_XFS_ONLINE_REPAIR
11	struct xrep_tempexch	tempexch;
12#endif
13	struct xfs_rtalloc_args	args;
14
15	uint64_t		rextents;
16	uint64_t		rbmblocks;
17	uint64_t		rsumsize;
18	unsigned int		rsumlevels;
19	unsigned int		resblks;
20
21	/* suminfo position of xfile as we write buffers to disk. */
22	xfs_rtsumoff_t		prep_wordoff;
23
24	/* Memory buffer for the summary comparison. */
25	union xfs_suminfo_raw	words[];
26};
27
28int xfsum_copyout(struct xfs_scrub *sc, xfs_rtsumoff_t sumoff,
29		union xfs_suminfo_raw *rawinfo, unsigned int nr_words);
30
31#ifdef CONFIG_XFS_ONLINE_REPAIR
32int xrep_setup_rtsummary(struct xfs_scrub *sc, struct xchk_rtsummary *rts);
33#else
34# define xrep_setup_rtsummary(sc, rts)	(0)
35#endif /* CONFIG_XFS_ONLINE_REPAIR */
36
37#endif /* __XFS_SCRUB_RTSUMMARY_H__ */
38