Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
[platform/kernel/linux-starfive.git] / fs / netfs / internal.h
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /* Internal definitions for network filesystem support
3  *
4  * Copyright (C) 2021 Red Hat, Inc. All Rights Reserved.
5  * Written by David Howells (dhowells@redhat.com)
6  */
7
8 #ifdef pr_fmt
9 #undef pr_fmt
10 #endif
11
12 #define pr_fmt(fmt) "netfs: " fmt
13
14 /*
15  * read_helper.c
16  */
17 extern unsigned int netfs_debug;
18
19 /*
20  * stats.c
21  */
22 #ifdef CONFIG_NETFS_STATS
23 extern atomic_t netfs_n_rh_readahead;
24 extern atomic_t netfs_n_rh_readpage;
25 extern atomic_t netfs_n_rh_rreq;
26 extern atomic_t netfs_n_rh_sreq;
27 extern atomic_t netfs_n_rh_download;
28 extern atomic_t netfs_n_rh_download_done;
29 extern atomic_t netfs_n_rh_download_failed;
30 extern atomic_t netfs_n_rh_download_instead;
31 extern atomic_t netfs_n_rh_read;
32 extern atomic_t netfs_n_rh_read_done;
33 extern atomic_t netfs_n_rh_read_failed;
34 extern atomic_t netfs_n_rh_zero;
35 extern atomic_t netfs_n_rh_short_read;
36 extern atomic_t netfs_n_rh_write;
37 extern atomic_t netfs_n_rh_write_begin;
38 extern atomic_t netfs_n_rh_write_done;
39 extern atomic_t netfs_n_rh_write_failed;
40 extern atomic_t netfs_n_rh_write_zskip;
41
42
43 static inline void netfs_stat(atomic_t *stat)
44 {
45         atomic_inc(stat);
46 }
47
48 static inline void netfs_stat_d(atomic_t *stat)
49 {
50         atomic_dec(stat);
51 }
52
53 #else
54 #define netfs_stat(x) do {} while(0)
55 #define netfs_stat_d(x) do {} while(0)
56 #endif
57
58 /*****************************************************************************/
59 /*
60  * debug tracing
61  */
62 #define dbgprintk(FMT, ...) \
63         printk("[%-6.6s] "FMT"\n", current->comm, ##__VA_ARGS__)
64
65 #define kenter(FMT, ...) dbgprintk("==> %s("FMT")", __func__, ##__VA_ARGS__)
66 #define kleave(FMT, ...) dbgprintk("<== %s()"FMT"", __func__, ##__VA_ARGS__)
67 #define kdebug(FMT, ...) dbgprintk(FMT, ##__VA_ARGS__)
68
69 #ifdef __KDEBUG
70 #define _enter(FMT, ...) kenter(FMT, ##__VA_ARGS__)
71 #define _leave(FMT, ...) kleave(FMT, ##__VA_ARGS__)
72 #define _debug(FMT, ...) kdebug(FMT, ##__VA_ARGS__)
73
74 #elif defined(CONFIG_NETFS_DEBUG)
75 #define _enter(FMT, ...)                        \
76 do {                                            \
77         if (netfs_debug)                        \
78                 kenter(FMT, ##__VA_ARGS__);     \
79 } while (0)
80
81 #define _leave(FMT, ...)                        \
82 do {                                            \
83         if (netfs_debug)                        \
84                 kleave(FMT, ##__VA_ARGS__);     \
85 } while (0)
86
87 #define _debug(FMT, ...)                        \
88 do {                                            \
89         if (netfs_debug)                        \
90                 kdebug(FMT, ##__VA_ARGS__);     \
91 } while (0)
92
93 #else
94 #define _enter(FMT, ...) no_printk("==> %s("FMT")", __func__, ##__VA_ARGS__)
95 #define _leave(FMT, ...) no_printk("<== %s()"FMT"", __func__, ##__VA_ARGS__)
96 #define _debug(FMT, ...) no_printk(FMT, ##__VA_ARGS__)
97 #endif