1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _FS_CEPH_DEBUG_H
3 #define _FS_CEPH_DEBUG_H
4 
5 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
6 
7 #include <linux/string.h>
8 
9 #ifdef CONFIG_CEPH_LIB_PRETTYDEBUG
10 
11 /*
12  * wrap pr_debug to include a filename:lineno prefix on each line.
13  * this incurs some overhead (kernel size and execution time) due to
14  * the extra function call at each call site.
15  */
16 
17 # if defined(DEBUG) || defined(CONFIG_DYNAMIC_DEBUG)
18 #  define dout(fmt, ...)						\
19 	pr_debug("%.*s %12.12s:%-4d : " fmt,				\
20 		 8 - (int)sizeof(KBUILD_MODNAME), "    ",		\
21 		 kbasename(__FILE__), __LINE__, ##__VA_ARGS__)
22 #  define doutc(client, fmt, ...)					\
23 	pr_debug("%.*s %12.12s:%-4d : [%pU %llu] " fmt,			\
24 		 8 - (int)sizeof(KBUILD_MODNAME), "    ",		\
25 		 kbasename(__FILE__), __LINE__,				\
26 		 &client->fsid, client->monc.auth->global_id,		\
27 		 ##__VA_ARGS__)
28 # else
29 /* faux printk call just to see any compiler warnings. */
30 #  define dout(fmt, ...)	do {				\
31 		if (0)						\
32 			printk(KERN_DEBUG fmt, ##__VA_ARGS__);	\
33 	} while (0)
34 #  define doutc(client, fmt, ...)	do {			\
35 		if (0)						\
36 			printk(KERN_DEBUG "[%pU %llu] " fmt,	\
37 			&client->fsid,				\
38 			client->monc.auth->global_id,		\
39 			##__VA_ARGS__);				\
40 		} while (0)
41 # endif
42 
43 #else
44 
45 /*
46  * or, just wrap pr_debug
47  */
48 # define dout(fmt, ...)	pr_debug(" " fmt, ##__VA_ARGS__)
49 # define doutc(client, fmt, ...)					\
50 	pr_debug(" [%pU %llu] %s: " fmt, &client->fsid,			\
51 		 client->monc.auth->global_id, __func__, ##__VA_ARGS__)
52 
53 #endif
54 
55 #define pr_notice_client(client, fmt, ...)				\
56 	pr_notice("[%pU %llu]: " fmt, &client->fsid,			\
57 		  client->monc.auth->global_id, ##__VA_ARGS__)
58 #define pr_info_client(client, fmt, ...)				\
59 	pr_info("[%pU %llu]: " fmt, &client->fsid,			\
60 		client->monc.auth->global_id, ##__VA_ARGS__)
61 #define pr_warn_client(client, fmt, ...)				\
62 	pr_warn("[%pU %llu]: " fmt, &client->fsid,			\
63 		client->monc.auth->global_id, ##__VA_ARGS__)
64 #define pr_warn_once_client(client, fmt, ...)				\
65 	pr_warn_once("[%pU %llu]: " fmt, &client->fsid,			\
66 		     client->monc.auth->global_id, ##__VA_ARGS__)
67 #define pr_err_client(client, fmt, ...)					\
68 	pr_err("[%pU %llu]: " fmt, &client->fsid,			\
69 	       client->monc.auth->global_id, ##__VA_ARGS__)
70 #define pr_warn_ratelimited_client(client, fmt, ...)			\
71 	pr_warn_ratelimited("[%pU %llu]: " fmt, &client->fsid,		\
72 			    client->monc.auth->global_id, ##__VA_ARGS__)
73 #define pr_err_ratelimited_client(client, fmt, ...)			\
74 	pr_err_ratelimited("[%pU %llu]: " fmt, &client->fsid,		\
75 			   client->monc.auth->global_id, ##__VA_ARGS__)
76 
77 #endif
78