xref: /linux/fs/xfs/scrub/trace.c (revision 21d7500929c8a0b10e22a6755850c6f9a9280284)
1739a2fe0SDarrick J. Wong // SPDX-License-Identifier: GPL-2.0-or-later
236fd6e86SDarrick J. Wong /*
3ecc73f8aSDarrick J. Wong  * Copyright (C) 2017-2023 Oracle.  All Rights Reserved.
4739a2fe0SDarrick J. Wong  * Author: Darrick J. Wong <djwong@kernel.org>
536fd6e86SDarrick J. Wong  */
636fd6e86SDarrick J. Wong #include "xfs.h"
736fd6e86SDarrick J. Wong #include "xfs_fs.h"
836fd6e86SDarrick J. Wong #include "xfs_shared.h"
936fd6e86SDarrick J. Wong #include "xfs_format.h"
1036fd6e86SDarrick J. Wong #include "xfs_log_format.h"
1136fd6e86SDarrick J. Wong #include "xfs_trans_resv.h"
1236fd6e86SDarrick J. Wong #include "xfs_mount.h"
1336fd6e86SDarrick J. Wong #include "xfs_inode.h"
1436fd6e86SDarrick J. Wong #include "xfs_btree.h"
1550f02fe3SDave Chinner #include "xfs_ag.h"
16663b8db7SDarrick J. Wong #include "xfs_rtbitmap.h"
17*21d75009SDarrick J. Wong #include "xfs_quota.h"
183934e8ebSDarrick J. Wong #include "scrub/scrub.h"
193934e8ebSDarrick J. Wong #include "scrub/xfile.h"
203934e8ebSDarrick J. Wong #include "scrub/xfarray.h"
21*21d75009SDarrick J. Wong #include "scrub/quota.h"
2236fd6e86SDarrick J. Wong 
23537964bcSDarrick J. Wong /* Figure out which block the btree cursor was pointing to. */
24537964bcSDarrick J. Wong static inline xfs_fsblock_t
25c517b3aaSDarrick J. Wong xchk_btree_cur_fsbno(
26537964bcSDarrick J. Wong 	struct xfs_btree_cur	*cur,
27537964bcSDarrick J. Wong 	int			level)
28537964bcSDarrick J. Wong {
296ca444cfSDarrick J. Wong 	if (level < cur->bc_nlevels && cur->bc_levels[level].bp)
309343ee76SDave Chinner 		return XFS_DADDR_TO_FSB(cur->bc_mp,
316ca444cfSDarrick J. Wong 				xfs_buf_daddr(cur->bc_levels[level].bp));
3294a14cfdSDarrick J. Wong 
3394a14cfdSDarrick J. Wong 	if (level == cur->bc_nlevels - 1 &&
3494a14cfdSDarrick J. Wong 	    (cur->bc_flags & XFS_BTREE_ROOT_IN_INODE))
3592219c29SDave Chinner 		return XFS_INO_TO_FSB(cur->bc_mp, cur->bc_ino.ip->i_ino);
3694a14cfdSDarrick J. Wong 
37537964bcSDarrick J. Wong 	return NULLFSBLOCK;
38537964bcSDarrick J. Wong }
39537964bcSDarrick J. Wong 
4036fd6e86SDarrick J. Wong /*
4136fd6e86SDarrick J. Wong  * We include this last to have the helpers above available for the trace
4236fd6e86SDarrick J. Wong  * event implementations.
4336fd6e86SDarrick J. Wong  */
4436fd6e86SDarrick J. Wong #define CREATE_TRACE_POINTS
4536fd6e86SDarrick J. Wong #include "scrub/trace.h"
46