aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2016-10-15 16:59:03 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2017-01-30 13:14:50 -0500
commitddeaa6379d50a530f9f57b3d12f7940e079b052c (patch)
tree32eb8abbff72b1c6b7f5b72ea15cdc776f2c9f90
parent566cf877a1fcb6d6dc0126b076aad062054c2637 (diff)
sunrpc & nfs: Add and use dprintk_cont macros
Allow line continuations to work properly with KERN_CONT. Signed-off-by: Joe Perches <joe@perches.com> [Anna: Add fallback dprintk_cont() for when CONFIG_SUNRPC_DEBUG=n] Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
-rw-r--r--fs/nfs/write.c6
-rw-r--r--include/linux/sunrpc/debug.h58
2 files changed, 43 insertions, 21 deletions
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index b00d53d13d47..ad4219a41f25 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -1787,7 +1787,7 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)
1787 if (status < 0) { 1787 if (status < 0) {
1788 nfs_context_set_write_error(req->wb_context, status); 1788 nfs_context_set_write_error(req->wb_context, status);
1789 nfs_inode_remove_request(req); 1789 nfs_inode_remove_request(req);
1790 dprintk(", error = %d\n", status); 1790 dprintk_cont(", error = %d\n", status);
1791 goto next; 1791 goto next;
1792 } 1792 }
1793 1793
@@ -1796,11 +1796,11 @@ static void nfs_commit_release_pages(struct nfs_commit_data *data)
1796 if (!nfs_write_verifier_cmp(&req->wb_verf, &data->verf.verifier)) { 1796 if (!nfs_write_verifier_cmp(&req->wb_verf, &data->verf.verifier)) {
1797 /* We have a match */ 1797 /* We have a match */
1798 nfs_inode_remove_request(req); 1798 nfs_inode_remove_request(req);
1799 dprintk(" OK\n"); 1799 dprintk_cont(" OK\n");
1800 goto next; 1800 goto next;
1801 } 1801 }
1802 /* We have a mismatch. Write the page again */ 1802 /* We have a mismatch. Write the page again */
1803 dprintk(" mismatch\n"); 1803 dprintk_cont(" mismatch\n");
1804 nfs_mark_request_dirty(req); 1804 nfs_mark_request_dirty(req);
1805 set_bit(NFS_CONTEXT_RESEND_WRITES, &req->wb_context->flags); 1805 set_bit(NFS_CONTEXT_RESEND_WRITES, &req->wb_context->flags);
1806 next: 1806 next:
diff --git a/include/linux/sunrpc/debug.h b/include/linux/sunrpc/debug.h
index 59a7889e15db..8da0f37f3bdc 100644
--- a/include/linux/sunrpc/debug.h
+++ b/include/linux/sunrpc/debug.h
@@ -20,33 +20,55 @@ extern unsigned int nfsd_debug;
20extern unsigned int nlm_debug; 20extern unsigned int nlm_debug;
21#endif 21#endif
22 22
23#define dprintk(args...) dfprintk(FACILITY, ## args) 23#define dprintk(fmt, ...) \
24#define dprintk_rcu(args...) dfprintk_rcu(FACILITY, ## args) 24 dfprintk(FACILITY, fmt, ##__VA_ARGS__)
25#define dprintk_cont(fmt, ...) \
26 dfprintk_cont(FACILITY, fmt, ##__VA_ARGS__)
27#define dprintk_rcu(fmt, ...) \
28 dfprintk_rcu(FACILITY, fmt, ##__VA_ARGS__)
29#define dprintk_rcu_cont(fmt, ...) \
30 dfprintk_rcu_cont(FACILITY, fmt, ##__VA_ARGS__)
25 31
26#undef ifdebug 32#undef ifdebug
27#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) 33#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
28# define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac)) 34# define ifdebug(fac) if (unlikely(rpc_debug & RPCDBG_##fac))
29 35
30# define dfprintk(fac, args...) \ 36# define dfprintk(fac, fmt, ...) \
31 do { \ 37do { \
32 ifdebug(fac) \ 38 ifdebug(fac) \
33 printk(KERN_DEFAULT args); \ 39 printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
34 } while (0) 40} while (0)
35 41
36# define dfprintk_rcu(fac, args...) \ 42# define dfprintk_cont(fac, fmt, ...) \
37 do { \ 43do { \
38 ifdebug(fac) { \ 44 ifdebug(fac) \
39 rcu_read_lock(); \ 45 printk(KERN_CONT fmt, ##__VA_ARGS__); \
40 printk(KERN_DEFAULT args); \ 46} while (0)
41 rcu_read_unlock(); \ 47
42 } \ 48# define dfprintk_rcu(fac, fmt, ...) \
43 } while (0) 49do { \
50 ifdebug(fac) { \
51 rcu_read_lock(); \
52 printk(KERN_DEFAULT fmt, ##__VA_ARGS__); \
53 rcu_read_unlock(); \
54 } \
55} while (0)
56
57# define dfprintk_rcu_cont(fac, fmt, ...) \
58do { \
59 ifdebug(fac) { \
60 rcu_read_lock(); \
61 printk(KERN_CONT fmt, ##__VA_ARGS__); \
62 rcu_read_unlock(); \
63 } \
64} while (0)
44 65
45# define RPC_IFDEBUG(x) x 66# define RPC_IFDEBUG(x) x
46#else 67#else
47# define ifdebug(fac) if (0) 68# define ifdebug(fac) if (0)
48# define dfprintk(fac, args...) do {} while (0) 69# define dfprintk(fac, fmt, ...) do {} while (0)
49# define dfprintk_rcu(fac, args...) do {} while (0) 70# define dfprintk_cont(fac, fmt, ...) do {} while (0)
71# define dfprintk_rcu(fac, fmt, ...) do {} while (0)
50# define RPC_IFDEBUG(x) 72# define RPC_IFDEBUG(x)
51#endif 73#endif
52 74