~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/xfs/xfs_message.c

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 __xfs_printk(
 19         const char              *level,
 20         const struct xfs_mount  *mp,
 21         struct va_format        *vaf)
 22 {
 23         if (mp && mp->m_super) {
 24                 printk("%sXFS (%s): %pV\n", level, mp->m_super->s_id, vaf);
 25                 return;
 26         }
 27         printk("%sXFS: %pV\n", level, vaf);
 28 }
 29 
 30 void
 31 xfs_printk_level(
 32         const char *kern_level,
 33         const struct xfs_mount *mp,
 34         const char *fmt, ...)
 35 {
 36         struct va_format        vaf;
 37         va_list                 args;
 38         int                     level;
 39 
 40         va_start(args, fmt);
 41         vaf.fmt = fmt;
 42         vaf.va = &args;
 43 
 44         __xfs_printk(kern_level, mp, &vaf);
 45 
 46         va_end(args);
 47 
 48         if (!kstrtoint(kern_level, 0, &level) &&
 49             level <= LOGLEVEL_ERR &&
 50             xfs_error_level >= XFS_ERRLEVEL_HIGH)
 51                 xfs_stack_trace();
 52 }
 53 
 54 void
 55 _xfs_alert_tag(
 56         const struct xfs_mount  *mp,
 57         uint32_t                panic_tag,
 58         const char              *fmt, ...)
 59 {
 60         struct va_format        vaf;
 61         va_list                 args;
 62         int                     do_panic = 0;
 63 
 64         if (xfs_panic_mask && (xfs_panic_mask & panic_tag)) {
 65                 xfs_alert(mp, "Transforming an alert into a BUG.");
 66                 do_panic = 1;
 67         }
 68 
 69         va_start(args, fmt);
 70 
 71         vaf.fmt = fmt;
 72         vaf.va = &args;
 73 
 74         __xfs_printk(KERN_ALERT, mp, &vaf);
 75         va_end(args);
 76 
 77         BUG_ON(do_panic);
 78 }
 79 
 80 void
 81 asswarn(
 82         struct xfs_mount        *mp,
 83         char                    *expr,
 84         char                    *file,
 85         int                     line)
 86 {
 87         xfs_warn(mp, "Assertion failed: %s, file: %s, line: %d",
 88                 expr, file, line);
 89         WARN_ON(1);
 90 }
 91 
 92 void
 93 assfail(
 94         struct xfs_mount        *mp,
 95         char                    *expr,
 96         char                    *file,
 97         int                     line)
 98 {
 99         xfs_emerg(mp, "Assertion failed: %s, file: %s, line: %d",
100                 expr, file, line);
101         if (xfs_globals.bug_on_assert)
102                 BUG();
103         else
104                 WARN_ON(1);
105 }
106 
107 void
108 xfs_hex_dump(const void *p, int length)
109 {
110         print_hex_dump(KERN_ALERT, "", DUMP_PREFIX_OFFSET, 16, 1, p, length, 1);
111 }
112 
113 void
114 xfs_buf_alert_ratelimited(
115         struct xfs_buf          *bp,
116         const char              *rlmsg,
117         const char              *fmt,
118         ...)
119 {
120         struct xfs_mount        *mp = bp->b_mount;
121         struct va_format        vaf;
122         va_list                 args;
123 
124         /* use the more aggressive per-target rate limit for buffers */
125         if (!___ratelimit(&bp->b_target->bt_ioerror_rl, rlmsg))
126                 return;
127 
128         va_start(args, fmt);
129         vaf.fmt = fmt;
130         vaf.va = &args;
131         __xfs_printk(KERN_ALERT, mp, &vaf);
132         va_end(args);
133 }
134 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php