Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2017 Oracle. All Rights Reserved.
4 * Author: Darrick J. Wong <darrick.wong@oracle.com>
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 "scrub/scrub.h"
16#include "xfs_ag.h"
17
18/* Figure out which block the btree cursor was pointing to. */
19static inline xfs_fsblock_t
20xchk_btree_cur_fsbno(
21 struct xfs_btree_cur *cur,
22 int level)
23{
24 if (level < cur->bc_nlevels && cur->bc_levels[level].bp)
25 return XFS_DADDR_TO_FSB(cur->bc_mp,
26 xfs_buf_daddr(cur->bc_levels[level].bp));
27
28 if (level == cur->bc_nlevels - 1 &&
29 (cur->bc_flags & XFS_BTREE_ROOT_IN_INODE))
30 return XFS_INO_TO_FSB(cur->bc_mp, cur->bc_ino.ip->i_ino);
31
32 return NULLFSBLOCK;
33}
34
35/*
36 * We include this last to have the helpers above available for the trace
37 * event implementations.
38 */
39#define CREATE_TRACE_POINTS
40#include "scrub/trace.h"