1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * Copyright (C) 2018-2023 Oracle.  All Rights Reserved.
4 * Author: Darrick J. Wong <djwong@kernel.org>
5 */
6#ifndef __XFS_SCRUB_QUOTA_H__
7#define __XFS_SCRUB_QUOTA_H__
8
9xfs_dqtype_t xchk_quota_to_dqtype(struct xfs_scrub *sc);
10
11/* dquot iteration code */
12
13struct xchk_dqiter {
14	struct xfs_scrub	*sc;
15
16	/* Quota file that we're walking. */
17	struct xfs_inode	*quota_ip;
18
19	/* Cached data fork mapping for the dquot. */
20	struct xfs_bmbt_irec	bmap;
21
22	/* The next dquot to scan. */
23	uint64_t		id;
24
25	/* Quota type (user/group/project). */
26	xfs_dqtype_t		dqtype;
27
28	/* Data fork sequence number to detect stale mappings. */
29	unsigned int		if_seq;
30};
31
32void xchk_dqiter_init(struct xchk_dqiter *cursor, struct xfs_scrub *sc,
33		xfs_dqtype_t dqtype);
34int xchk_dquot_iter(struct xchk_dqiter *cursor, struct xfs_dquot **dqpp);
35
36#endif /* __XFS_SCRUB_QUOTA_H__ */
37