LCOV - code coverage report
Current view: top level - fs/xfs/scrub - trace.c (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc4-xfsx @ Mon Jul 31 20:08:34 PDT 2023 Lines: 5 12 41.7 %
Date: 2023-07-31 20:08:34 Functions: 1 2 50.0 %

          Line data    Source code
       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_btree_mem.h"
      16             : #include "xfs_ag.h"
      17             : #include "xfs_quota_defs.h"
      18             : #include "xfs_dir2.h"
      19             : #include "xfs_da_format.h"
      20             : #include "xfs_rmap.h"
      21             : #include "xfs_parent.h"
      22             : #include "xfs_rtbitmap.h"
      23             : #include "xfs_rtgroup.h"
      24             : #include "scrub/scrub.h"
      25             : #include "scrub/xfile.h"
      26             : #include "scrub/xfarray.h"
      27             : #include "scrub/iscan.h"
      28             : #include "scrub/orphanage.h"
      29             : #include "scrub/nlinks.h"
      30             : #include "scrub/fscounters.h"
      31             : #include "scrub/xfbtree.h"
      32             : #include "scrub/bitmap.h"
      33             : #include "scrub/xfblob.h"
      34             : #include "scrub/dirtree.h"
      35             : 
      36             : /* Figure out which block the btree cursor was pointing to. */
      37             : static inline xfs_fsblock_t
      38           0 : xchk_btree_cur_fsbno(
      39             :         struct xfs_btree_cur    *cur,
      40             :         int                     level)
      41             : {
      42           0 :         if (level < cur->bc_nlevels && cur->bc_levels[level].bp)
      43           0 :                 return XFS_DADDR_TO_FSB(cur->bc_mp,
      44             :                                 xfs_buf_daddr(cur->bc_levels[level].bp));
      45             : 
      46           0 :         if (level == cur->bc_nlevels - 1 &&
      47           0 :             (cur->bc_flags & XFS_BTREE_ROOT_IN_INODE))
      48           0 :                 return XFS_INO_TO_FSB(cur->bc_mp, cur->bc_ino.ip->i_ino);
      49             : 
      50             :         return NULLFSBLOCK;
      51             : }
      52             : 
      53             : #ifdef CONFIG_XFS_BTREE_IN_XFILE
      54             : static inline unsigned long
      55             : xfbtree_ino(
      56             :         struct xfbtree          *xfbt)
      57             : {
      58           0 :         return file_inode(xfbt->target->bt_xfile->file)->i_ino;
      59             : }
      60             : #endif /* CONFIG_XFS_BTREE_IN_XFILE */
      61             : 
      62             : /*
      63             :  * We include this last to have the helpers above available for the trace
      64             :  * event implementations.
      65             :  */
      66             : #define CREATE_TRACE_POINTS
      67             : #include "scrub/trace.h"
      68             : 
      69             : /* xchk_whine stuff */
      70             : struct xchk_tstr {
      71             :         unsigned int    type;
      72             :         const char      *tag;
      73             : };
      74             : 
      75             : static const struct xchk_tstr xchk_tstr_tags[] = { XFS_SCRUB_TYPE_STRINGS };
      76             : 
      77             : const char *
      78      310675 : xchk_type_string(
      79             :         unsigned int    type)
      80             : {
      81      310675 :         unsigned int    i;
      82             : 
      83     4457879 :         for (i = 0; i < ARRAY_SIZE(xchk_tstr_tags); i++) {
      84     4457879 :                 if (xchk_tstr_tags[i].type == type)
      85      310678 :                         return xchk_tstr_tags[i].tag;
      86             :         }
      87             : 
      88             :         return "???";
      89             : }

Generated by: LCOV version 1.14