hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/fs/xfs/xfs_message.h
....@@ -31,14 +31,26 @@
3131 }
3232 #endif
3333
34
-#define xfs_printk_ratelimited(func, dev, fmt, ...) \
34
+#define xfs_printk_ratelimited(func, dev, fmt, ...) \
3535 do { \
3636 static DEFINE_RATELIMIT_STATE(_rs, \
3737 DEFAULT_RATELIMIT_INTERVAL, \
3838 DEFAULT_RATELIMIT_BURST); \
3939 if (__ratelimit(&_rs)) \
40
- func(dev, fmt, ##__VA_ARGS__); \
40
+ func(dev, fmt, ##__VA_ARGS__); \
4141 } while (0)
42
+
43
+#define xfs_printk_once(func, dev, fmt, ...) \
44
+({ \
45
+ static bool __section(".data.once") __print_once; \
46
+ bool __ret_print_once = !__print_once; \
47
+ \
48
+ if (!__print_once) { \
49
+ __print_once = true; \
50
+ func(dev, fmt, ##__VA_ARGS__); \
51
+ } \
52
+ unlikely(__ret_print_once); \
53
+})
4254
4355 #define xfs_emerg_ratelimited(dev, fmt, ...) \
4456 xfs_printk_ratelimited(xfs_emerg, dev, fmt, ##__VA_ARGS__)
....@@ -57,9 +69,17 @@
5769 #define xfs_debug_ratelimited(dev, fmt, ...) \
5870 xfs_printk_ratelimited(xfs_debug, dev, fmt, ##__VA_ARGS__)
5971
60
-extern void assfail(char *expr, char *f, int l);
61
-extern void asswarn(char *expr, char *f, int l);
72
+#define xfs_warn_once(dev, fmt, ...) \
73
+ xfs_printk_once(xfs_warn, dev, fmt, ##__VA_ARGS__)
74
+#define xfs_notice_once(dev, fmt, ...) \
75
+ xfs_printk_once(xfs_notice, dev, fmt, ##__VA_ARGS__)
6276
63
-extern void xfs_hex_dump(void *p, int length);
77
+void assfail(struct xfs_mount *mp, char *expr, char *f, int l);
78
+void asswarn(struct xfs_mount *mp, char *expr, char *f, int l);
79
+
80
+extern void xfs_hex_dump(const void *p, int length);
81
+
82
+void xfs_buf_alert_ratelimited(struct xfs_buf *bp, const char *rlmsg,
83
+ const char *fmt, ...);
6484
6585 #endif /* __XFS_MESSAGE_H */