Skip to content

Commit e270356

Browse files
jofdchinner
authored andcommitted
xfs: Add XFS messages to printk index
In order for end users to quickly react to new issues that come up in production, it is proving useful to leverage the printk indexing system. This printk index enables kernel developers to use calls to printk() with changeable format strings (as they always have; no change of expectations), while enabling end users to examine format strings to detect changes. Since end users are using regular expressions to match messages printed through printk(), being able to detect changes in chosen format strings from release to release provides a useful signal to review printk()-matching regular expressions for any necessary updates. So that detailed XFS messages are captures by this printk index, this patch wraps the xfs_<level> and xfs_alert_tag functions. Signed-off-by: Jonathan Lassoff <jof@thejof.com> Reviewed-by: Chris Down <chris@chrisdown.name> Reviewed-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
1 parent e60aa78 commit e270356

2 files changed

Lines changed: 21 additions & 10 deletions

File tree

fs/xfs/xfs_message.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ xfs_printk_level(
5252
}
5353

5454
void
55-
xfs_alert_tag(
55+
_xfs_alert_tag(
5656
const struct xfs_mount *mp,
5757
int panic_tag,
5858
const char *fmt, ...)

fs/xfs/xfs_message.h

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,40 @@ extern __printf(3, 4)
1010
void xfs_printk_level(const char *kern_level, const struct xfs_mount *mp,
1111
const char *fmt, ...);
1212

13+
#define xfs_printk_index_wrap(kern_level, mp, fmt, ...) \
14+
({ \
15+
printk_index_subsys_emit("%sXFS%s: ", kern_level, fmt); \
16+
xfs_printk_level(kern_level, mp, fmt, ##__VA_ARGS__); \
17+
})
1318
#define xfs_emerg(mp, fmt, ...) \
14-
xfs_printk_level(KERN_EMERG, mp, fmt, ##__VA_ARGS__)
19+
xfs_printk_index_wrap(KERN_EMERG, mp, fmt, ##__VA_ARGS__)
1520
#define xfs_alert(mp, fmt, ...) \
16-
xfs_printk_level(KERN_ALERT, mp, fmt, ##__VA_ARGS__)
21+
xfs_printk_index_wrap(KERN_ALERT, mp, fmt, ##__VA_ARGS__)
1722
#define xfs_crit(mp, fmt, ...) \
18-
xfs_printk_level(KERN_CRIT, mp, fmt, ##__VA_ARGS__)
23+
xfs_printk_index_wrap(KERN_CRIT, mp, fmt, ##__VA_ARGS__)
1924
#define xfs_err(mp, fmt, ...) \
20-
xfs_printk_level(KERN_ERR, mp, fmt, ##__VA_ARGS__)
25+
xfs_printk_index_wrap(KERN_ERR, mp, fmt, ##__VA_ARGS__)
2126
#define xfs_warn(mp, fmt, ...) \
22-
xfs_printk_level(KERN_WARNING, mp, fmt, ##__VA_ARGS__)
27+
xfs_printk_index_wrap(KERN_WARNING, mp, fmt, ##__VA_ARGS__)
2328
#define xfs_notice(mp, fmt, ...) \
24-
xfs_printk_level(KERN_NOTICE, mp, fmt, ##__VA_ARGS__)
29+
xfs_printk_index_wrap(KERN_NOTICE, mp, fmt, ##__VA_ARGS__)
2530
#define xfs_info(mp, fmt, ...) \
26-
xfs_printk_level(KERN_INFO, mp, fmt, ##__VA_ARGS__)
31+
xfs_printk_index_wrap(KERN_INFO, mp, fmt, ##__VA_ARGS__)
2732
#ifdef DEBUG
2833
#define xfs_debug(mp, fmt, ...) \
29-
xfs_printk_level(KERN_DEBUG, mp, fmt, ##__VA_ARGS__)
34+
xfs_printk_index_wrap(KERN_DEBUG, mp, fmt, ##__VA_ARGS__)
3035
#else
3136
#define xfs_debug(mp, fmt, ...) do {} while (0)
3237
#endif
3338

39+
#define xfs_alert_tag(mp, tag, fmt, ...) \
40+
({ \
41+
printk_index_subsys_emit("%sXFS%s: ", KERN_ALERT, fmt); \
42+
_xfs_alert_tag(mp, tag, fmt, ##__VA_ARGS__); \
43+
})
44+
3445
extern __printf(3, 4)
35-
void xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
46+
void _xfs_alert_tag(const struct xfs_mount *mp, int tag, const char *fmt, ...);
3647

3748
#define xfs_printk_ratelimited(func, dev, fmt, ...) \
3849
do { \

0 commit comments

Comments
 (0)