~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to fs/xfs/linux-2.6/xfs_message.c

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (c) 2011 Red Hat, Inc.  All Rights Reserved.
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or
 
5
 * modify it under the terms of the GNU General Public License as
 
6
 * published by the Free Software Foundation.
 
7
 *
 
8
 * This program is distributed in the hope that it would be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with this program; if not, write the Free Software Foundation,
 
15
 * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 
16
 */
 
17
 
 
18
#include "xfs.h"
 
19
#include "xfs_fs.h"
 
20
#include "xfs_types.h"
 
21
#include "xfs_log.h"
 
22
#include "xfs_inum.h"
 
23
#include "xfs_trans.h"
 
24
#include "xfs_sb.h"
 
25
#include "xfs_ag.h"
 
26
#include "xfs_mount.h"
 
27
 
 
28
/*
 
29
 * XFS logging functions
 
30
 */
 
31
static void
 
32
__xfs_printk(
 
33
        const char              *level,
 
34
        const struct xfs_mount  *mp,
 
35
        struct va_format        *vaf)
 
36
{
 
37
        if (mp && mp->m_fsname) {
 
38
                printk("%sXFS (%s): %pV\n", level, mp->m_fsname, vaf);
 
39
                return;
 
40
        }
 
41
        printk("%sXFS: %pV\n", level, vaf);
 
42
}
 
43
 
 
44
#define define_xfs_printk_level(func, kern_level)               \
 
45
void func(const struct xfs_mount *mp, const char *fmt, ...)     \
 
46
{                                                               \
 
47
        struct va_format        vaf;                            \
 
48
        va_list                 args;                           \
 
49
                                                                \
 
50
        va_start(args, fmt);                                    \
 
51
                                                                \
 
52
        vaf.fmt = fmt;                                          \
 
53
        vaf.va = &args;                                         \
 
54
                                                                \
 
55
        __xfs_printk(kern_level, mp, &vaf);                     \
 
56
        va_end(args);                                           \
 
57
}                                                               \
 
58
 
 
59
define_xfs_printk_level(xfs_emerg, KERN_EMERG);
 
60
define_xfs_printk_level(xfs_alert, KERN_ALERT);
 
61
define_xfs_printk_level(xfs_crit, KERN_CRIT);
 
62
define_xfs_printk_level(xfs_err, KERN_ERR);
 
63
define_xfs_printk_level(xfs_warn, KERN_WARNING);
 
64
define_xfs_printk_level(xfs_notice, KERN_NOTICE);
 
65
define_xfs_printk_level(xfs_info, KERN_INFO);
 
66
#ifdef DEBUG
 
67
define_xfs_printk_level(xfs_debug, KERN_DEBUG);
 
68
#endif
 
69
 
 
70
void
 
71
xfs_alert_tag(
 
72
        const struct xfs_mount  *mp,
 
73
        int                     panic_tag,
 
74
        const char              *fmt, ...)
 
75
{
 
76
        struct va_format        vaf;
 
77
        va_list                 args;
 
78
        int                     do_panic = 0;
 
79
 
 
80
        if (xfs_panic_mask && (xfs_panic_mask & panic_tag)) {
 
81
                xfs_alert(mp, "Transforming an alert into a BUG.");
 
82
                do_panic = 1;
 
83
        }
 
84
 
 
85
        va_start(args, fmt);
 
86
 
 
87
        vaf.fmt = fmt;
 
88
        vaf.va = &args;
 
89
 
 
90
        __xfs_printk(KERN_ALERT, mp, &vaf);
 
91
        va_end(args);
 
92
 
 
93
        BUG_ON(do_panic);
 
94
}
 
95
 
 
96
void
 
97
assfail(char *expr, char *file, int line)
 
98
{
 
99
        xfs_emerg(NULL, "Assertion failed: %s, file: %s, line: %d",
 
100
                expr, file, line);
 
101
        BUG();
 
102
}
 
103
 
 
104
void
 
105
xfs_hex_dump(void *p, int length)
 
106
{
 
107
        print_hex_dump(KERN_ALERT, "", DUMP_PREFIX_ADDRESS, 16, 1, p, length, 1);
 
108
}