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