xref: /linux/fs/xfs/scrub/rtsummary.h (revision 24168c5e6dfbdd5b414f048f47f75d64533296ca)
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 
9 struct 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 
28 int 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
32 int 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