Skip to content

Commit e60aa78

Browse files
jofdchinner
authored andcommitted
xfs: Simplify XFS logging methods.
Rather than have a constructor to define many nearly-identical functions, use preprocessor macros to pass down a kernel logging level to a common function. Signed-off-by: Jonathan Lassoff <jof@thejof.com> Reviewed-by: Chris Down <chris@chrisdown.name> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
1 parent ce522ba commit e60aa78

2 files changed

Lines changed: 45 additions & 52 deletions

File tree

fs/xfs/xfs_message.c

Lines changed: 23 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -27,37 +27,29 @@ __xfs_printk(
2727
printk("%sXFS: %pV\n", level, vaf);
2828
}
2929

30-
#define define_xfs_printk_level(func, kern_level) \
31-
void func(const struct xfs_mount *mp, const char *fmt, ...) \
32-
{ \
33-
struct va_format vaf; \
34-
va_list args; \
35-
int level; \
36-
\
37-
va_start(args, fmt); \
38-
\
39-
vaf.fmt = fmt; \
40-
vaf.va = &args; \
41-
\
42-
__xfs_printk(kern_level, mp, &vaf); \
43-
va_end(args); \
44-
\
45-
if (!kstrtoint(kern_level, 0, &level) && \
46-
level <= LOGLEVEL_ERR && \
47-
xfs_error_level >= XFS_ERRLEVEL_HIGH) \
48-
xfs_stack_trace(); \
49-
} \
50-
51-
define_xfs_printk_level(xfs_emerg, KERN_EMERG);
52-
define_xfs_printk_level(xfs_alert, KERN_ALERT);
53-
define_xfs_printk_level(xfs_crit, KERN_CRIT);
54-
define_xfs_printk_level(xfs_err, KERN_ERR);
55-
define_xfs_printk_level(xfs_warn, KERN_WARNING);
56-
define_xfs_printk_level(xfs_notice, KERN_NOTICE);
57-
define_xfs_printk_level(xfs_info, KERN_INFO);
58-
#ifdef DEBUG
59-
define_xfs_printk_level(xfs_debug, KERN_DEBUG);
60-
#endif
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+
}
6153

6254
void
6355
xfs_alert_tag(

fs/xfs/xfs_message.h

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,33 +6,34 @@
66

77
struct xfs_mount;
88

9-
extern __printf(2, 3)
10-
void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...);
11-
extern __printf(2, 3)
12-
void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...);
139
extern __printf(3, 4)
14-
void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
15-
extern __printf(2, 3)
16-
void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...);
17-
extern __printf(2, 3)
18-
void xfs_err(const struct xfs_mount *mp, const char *fmt, ...);
19-
extern __printf(2, 3)
20-
void xfs_warn(const struct xfs_mount *mp, const char *fmt, ...);
21-
extern __printf(2, 3)
22-
void xfs_notice(const struct xfs_mount *mp, const char *fmt, ...);
23-
extern __printf(2, 3)
24-
void xfs_info(const struct xfs_mount *mp, const char *fmt, ...);
10+
void xfs_printk_level(const char *kern_level, const struct xfs_mount *mp,
11+
const char *fmt, ...);
2512

13+
#define xfs_emerg(mp, fmt, ...) \
14+
xfs_printk_level(KERN_EMERG, mp, fmt, ##__VA_ARGS__)
15+
#define xfs_alert(mp, fmt, ...) \
16+
xfs_printk_level(KERN_ALERT, mp, fmt, ##__VA_ARGS__)
17+
#define xfs_crit(mp, fmt, ...) \
18+
xfs_printk_level(KERN_CRIT, mp, fmt, ##__VA_ARGS__)
19+
#define xfs_err(mp, fmt, ...) \
20+
xfs_printk_level(KERN_ERR, mp, fmt, ##__VA_ARGS__)
21+
#define xfs_warn(mp, fmt, ...) \
22+
xfs_printk_level(KERN_WARNING, mp, fmt, ##__VA_ARGS__)
23+
#define xfs_notice(mp, fmt, ...) \
24+
xfs_printk_level(KERN_NOTICE, mp, fmt, ##__VA_ARGS__)
25+
#define xfs_info(mp, fmt, ...) \
26+
xfs_printk_level(KERN_INFO, mp, fmt, ##__VA_ARGS__)
2627
#ifdef DEBUG
27-
extern __printf(2, 3)
28-
void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...);
28+
#define xfs_debug(mp, fmt, ...) \
29+
xfs_printk_level(KERN_DEBUG, mp, fmt, ##__VA_ARGS__)
2930
#else
30-
static inline __printf(2, 3)
31-
void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...)
32-
{
33-
}
31+
#define xfs_debug(mp, fmt, ...) do {} while (0)
3432
#endif
3533

34+
extern __printf(3, 4)
35+
void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
36+
3637
#define xfs_printk_ratelimited(func, dev, fmt, ...) \
3738
do { \
3839
static DEFINE_RATELIMIT_STATE(_rs, \

0 commit comments

Comments
 (0)