1 | // SPDX-License-Identifier: GPL-2.0-or-later |
2 | /* |
3 | * Copyright (C) 2017-2023 Oracle. All Rights Reserved. |
4 | * Author: Darrick J. Wong <djwong@kernel.org> |
5 | */ |
6 | #include "xfs.h" |
7 | #include "xfs_fs.h" |
8 | #include "xfs_shared.h" |
9 | #include "xfs_format.h" |
10 | #include "xfs_log_format.h" |
11 | #include "xfs_trans_resv.h" |
12 | #include "xfs_mount.h" |
13 | #include "xfs_inode.h" |
14 | #include "xfs_btree.h" |
15 | #include "xfs_ag.h" |
16 | #include "xfs_rtbitmap.h" |
17 | #include "xfs_quota.h" |
18 | #include "xfs_quota_defs.h" |
19 | #include "xfs_da_format.h" |
20 | #include "xfs_dir2.h" |
21 | #include "xfs_rmap.h" |
22 | #include "scrub/scrub.h" |
23 | #include "scrub/xfile.h" |
24 | #include "scrub/xfarray.h" |
25 | #include "scrub/quota.h" |
26 | #include "scrub/iscan.h" |
27 | #include "scrub/nlinks.h" |
28 | #include "scrub/fscounters.h" |
29 | |
30 | /* Figure out which block the btree cursor was pointing to. */ |
31 | static inline xfs_fsblock_t |
32 | xchk_btree_cur_fsbno( |
33 | struct xfs_btree_cur *cur, |
34 | int level) |
35 | { |
36 | if (level < cur->bc_nlevels && cur->bc_levels[level].bp) |
37 | return XFS_DADDR_TO_FSB(cur->bc_mp, |
38 | xfs_buf_daddr(cur->bc_levels[level].bp)); |
39 | |
40 | if (level == cur->bc_nlevels - 1 && |
41 | cur->bc_ops->type == XFS_BTREE_TYPE_INODE) |
42 | return XFS_INO_TO_FSB(cur->bc_mp, cur->bc_ino.ip->i_ino); |
43 | |
44 | return NULLFSBLOCK; |
45 | } |
46 | |
47 | /* |
48 | * We include this last to have the helpers above available for the trace |
49 | * event implementations. |
50 | */ |
51 | #define CREATE_TRACE_POINTS |
52 | #include "scrub/trace.h" |
53 | |