LCOV - code coverage report
Current view: top level - fs/xfs - xfs_message.c (source / functions) Hit Total Coverage
Test: fstests of 6.5.0-rc3-achx @ Mon Jul 31 20:08:12 PDT 2023 Lines: 47 57 82.5 %
Date: 2023-07-31 20:08:12 Functions: 6 7 85.7 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * Copyright (c) 2011 Red Hat, Inc.  All Rights Reserved.
       4             :  */
       5             : 
       6             : #include "xfs.h"
       7             : #include "xfs_fs.h"
       8             : #include "xfs_error.h"
       9             : #include "xfs_shared.h"
      10             : #include "xfs_format.h"
      11             : #include "xfs_trans_resv.h"
      12             : #include "xfs_mount.h"
      13             : 
      14             : /*
      15             :  * XFS logging functions
      16             :  */
      17             : static void
      18      622972 : __xfs_printk(
      19             :         const char              *level,
      20             :         const struct xfs_mount  *mp,
      21             :         struct va_format        *vaf)
      22             : {
      23      622972 :         if (mp && mp->m_super) {
      24      622776 :                 printk("%sXFS (%s): %pV\n", level, mp->m_super->s_id, vaf);
      25      622776 :                 return;
      26             :         }
      27         196 :         printk("%sXFS: %pV\n", level, vaf);
      28             : }
      29             : 
      30             : void
      31      591389 : xfs_printk_level(
      32             :         const char *kern_level,
      33             :         const struct xfs_mount *mp,
      34             :         const char *fmt, ...)
      35             : {
      36      591389 :         struct va_format        vaf;
      37      591389 :         va_list                 args;
      38      591389 :         int                     level;
      39             : 
      40      591389 :         va_start(args, fmt);
      41      591389 :         vaf.fmt = fmt;
      42      591389 :         vaf.va = &args;
      43             : 
      44      591389 :         __xfs_printk(kern_level, mp, &vaf);
      45             : 
      46      591391 :         va_end(args);
      47             : 
      48      591391 :         if (!kstrtoint(kern_level, 0, &level) &&
      49           0 :             level <= LOGLEVEL_ERR &&
      50           0 :             xfs_error_level >= XFS_ERRLEVEL_HIGH)
      51           0 :                 xfs_stack_trace();
      52      591387 : }
      53             : 
      54             : void
      55       17911 : _xfs_alert_tag(
      56             :         const struct xfs_mount  *mp,
      57             :         uint32_t                panic_tag,
      58             :         const char              *fmt, ...)
      59             : {
      60       17911 :         struct va_format        vaf;
      61       17911 :         va_list                 args;
      62       17911 :         int                     do_panic = 0;
      63             : 
      64       17911 :         if (xfs_panic_mask && (xfs_panic_mask & panic_tag)) {
      65           0 :                 xfs_alert(mp, "Transforming an alert into a BUG.");
      66           0 :                 do_panic = 1;
      67             :         }
      68             : 
      69       17911 :         va_start(args, fmt);
      70             : 
      71       17911 :         vaf.fmt = fmt;
      72       17911 :         vaf.va = &args;
      73             : 
      74       17911 :         __xfs_printk(KERN_ALERT, mp, &vaf);
      75       17911 :         va_end(args);
      76             : 
      77       17911 :         BUG_ON(do_panic);
      78       17911 : }
      79             : 
      80             : void
      81           0 : asswarn(
      82             :         struct xfs_mount        *mp,
      83             :         char                    *expr,
      84             :         char                    *file,
      85             :         int                     line)
      86             : {
      87           0 :         xfs_warn(mp, "Assertion failed: %s, file: %s, line: %d",
      88             :                 expr, file, line);
      89           0 :         WARN_ON(1);
      90           0 : }
      91             : 
      92             : void
      93          98 : assfail(
      94             :         struct xfs_mount        *mp,
      95             :         char                    *expr,
      96             :         char                    *file,
      97             :         int                     line)
      98             : {
      99          98 :         xfs_emerg(mp, "Assertion failed: %s, file: %s, line: %d",
     100             :                 expr, file, line);
     101          98 :         if (xfs_globals.bug_on_assert)
     102           0 :                 BUG();
     103             :         else
     104          98 :                 WARN_ON(1);
     105          98 : }
     106             : 
     107             : void
     108        5611 : xfs_hex_dump(const void *p, int length)
     109             : {
     110        5611 :         print_hex_dump(KERN_ALERT, "", DUMP_PREFIX_OFFSET, 16, 1, p, length, 1);
     111        5611 : }
     112             : 
     113             : void
     114       32167 : xfs_buf_alert_ratelimited(
     115             :         struct xfs_buf          *bp,
     116             :         const char              *rlmsg,
     117             :         const char              *fmt,
     118             :         ...)
     119             : {
     120       32167 :         struct xfs_mount        *mp = bp->b_mount;
     121       32167 :         struct va_format        vaf;
     122       32167 :         va_list                 args;
     123             : 
     124             :         /* use the more aggressive per-target rate limit for buffers */
     125       32167 :         if (!___ratelimit(&bp->b_target->bt_ioerror_rl, rlmsg))
     126       18508 :                 return;
     127             : 
     128       13678 :         va_start(args, fmt);
     129       13678 :         vaf.fmt = fmt;
     130       13678 :         vaf.va = &args;
     131       13678 :         __xfs_printk(KERN_ALERT, mp, &vaf);
     132       13677 :         va_end(args);
     133             : }

Generated by: LCOV version 1.14