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" 1721d75009SDarrick J. Wong #include "xfs_quota.h" 18a5b91555SDarrick J. Wong #include "xfs_quota_defs.h" 195385f1a6SDarrick J. Wong #include "xfs_da_format.h" 20f1184081SDarrick J. Wong #include "xfs_dir2.h" 21*7e1b84b2SDarrick J. Wong #include "xfs_rmap.h" 223934e8ebSDarrick J. Wong #include "scrub/scrub.h" 233934e8ebSDarrick J. Wong #include "scrub/xfile.h" 243934e8ebSDarrick J. Wong #include "scrub/xfarray.h" 2521d75009SDarrick J. Wong #include "scrub/quota.h" 268660c7b7SDarrick J. Wong #include "scrub/iscan.h" 27f1184081SDarrick J. Wong #include "scrub/nlinks.h" 284ed080cdSDarrick J. Wong #include "scrub/fscounters.h" 2936fd6e86SDarrick J. Wong 30537964bcSDarrick J. Wong /* Figure out which block the btree cursor was pointing to. */ 31537964bcSDarrick J. Wong static inline xfs_fsblock_t 32c517b3aaSDarrick J. Wong xchk_btree_cur_fsbno( 33537964bcSDarrick J. Wong struct xfs_btree_cur *cur, 34537964bcSDarrick J. Wong int level) 35537964bcSDarrick J. Wong { 366ca444cfSDarrick J. Wong if (level < cur->bc_nlevels && cur->bc_levels[level].bp) 379343ee76SDave Chinner return XFS_DADDR_TO_FSB(cur->bc_mp, 386ca444cfSDarrick J. Wong xfs_buf_daddr(cur->bc_levels[level].bp)); 3994a14cfdSDarrick J. Wong 4094a14cfdSDarrick J. Wong if (level == cur->bc_nlevels - 1 && 414f0cd5a5SChristoph Hellwig cur->bc_ops->type == XFS_BTREE_TYPE_INODE) 4292219c29SDave Chinner return XFS_INO_TO_FSB(cur->bc_mp, cur->bc_ino.ip->i_ino); 4394a14cfdSDarrick J. Wong 44537964bcSDarrick J. Wong return NULLFSBLOCK; 45537964bcSDarrick J. Wong } 46537964bcSDarrick J. Wong 4736fd6e86SDarrick J. Wong /* 4836fd6e86SDarrick J. Wong * We include this last to have the helpers above available for the trace 4936fd6e86SDarrick J. Wong * event implementations. 5036fd6e86SDarrick J. Wong */ 5136fd6e86SDarrick J. Wong #define CREATE_TRACE_POINTS 5236fd6e86SDarrick J. Wong #include "scrub/trace.h" 53