Skip to content

Commit 446233f

Browse files
committed
btrfs: switch all message helpers to be RCU safe
We have two versions of message helpers, one that provides RCU protection around the call in case we need to dereference device name. As messages are not performance critical we can set up the RCU protection for all of them and drop the distinction for those where device name is needed. This will lead to further simplifications. Reviewed-by: Daniel Vacek <neelx@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
1 parent c1d2771 commit 446233f

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

fs/btrfs/messages.h

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,17 @@ void _btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...);
3737
btrfs_no_printk(fs_info, fmt, ##args)
3838
#endif
3939

40+
/*
41+
* Print a message with filesystem info, enclosed in RCU protection.
42+
*/
4043
#define btrfs_crit(fs_info, fmt, args...) \
41-
btrfs_printk(fs_info, KERN_CRIT fmt, ##args)
44+
btrfs_printk_in_rcu(fs_info, KERN_CRIT fmt, ##args)
4245
#define btrfs_err(fs_info, fmt, args...) \
43-
btrfs_printk(fs_info, KERN_ERR fmt, ##args)
46+
btrfs_printk_in_rcu(fs_info, KERN_ERR fmt, ##args)
4447
#define btrfs_warn(fs_info, fmt, args...) \
45-
btrfs_printk(fs_info, KERN_WARNING fmt, ##args)
48+
btrfs_printk_in_rcu(fs_info, KERN_WARNING fmt, ##args)
4649
#define btrfs_info(fs_info, fmt, args...) \
47-
btrfs_printk(fs_info, KERN_INFO fmt, ##args)
50+
btrfs_printk_in_rcu(fs_info, KERN_INFO fmt, ##args)
4851

4952
/*
5053
* Wrappers that use printk in RCU
@@ -74,17 +77,17 @@ void _btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...);
7477
* Wrappers that use a ratelimited printk
7578
*/
7679
#define btrfs_crit_rl(fs_info, fmt, args...) \
77-
btrfs_printk_ratelimited(fs_info, KERN_CRIT fmt, ##args)
80+
btrfs_printk_rl_in_rcu(fs_info, KERN_CRIT fmt, ##args)
7881
#define btrfs_err_rl(fs_info, fmt, args...) \
79-
btrfs_printk_ratelimited(fs_info, KERN_ERR fmt, ##args)
82+
btrfs_printk_rl_in_rcu(fs_info, KERN_ERR fmt, ##args)
8083
#define btrfs_warn_rl(fs_info, fmt, args...) \
81-
btrfs_printk_ratelimited(fs_info, KERN_WARNING fmt, ##args)
84+
btrfs_printk_rl_in_rcu(fs_info, KERN_WARNING fmt, ##args)
8285
#define btrfs_info_rl(fs_info, fmt, args...) \
83-
btrfs_printk_ratelimited(fs_info, KERN_INFO fmt, ##args)
86+
btrfs_printk_rl_in_rcu(fs_info, KERN_INFO fmt, ##args)
8487

8588
#if defined(CONFIG_DYNAMIC_DEBUG)
8689
#define btrfs_debug(fs_info, fmt, args...) \
87-
_dynamic_func_call_no_desc(fmt, btrfs_printk, \
90+
_dynamic_func_call_no_desc(fmt, btrfs_printk_in_rcu, \
8891
fs_info, KERN_DEBUG fmt, ##args)
8992
#define btrfs_debug_in_rcu(fs_info, fmt, args...) \
9093
_dynamic_func_call_no_desc(fmt, btrfs_printk_in_rcu, \
@@ -93,26 +96,26 @@ void _btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...);
9396
_dynamic_func_call_no_desc(fmt, btrfs_printk_rl_in_rcu, \
9497
fs_info, KERN_DEBUG fmt, ##args)
9598
#define btrfs_debug_rl(fs_info, fmt, args...) \
96-
_dynamic_func_call_no_desc(fmt, btrfs_printk_ratelimited, \
99+
_dynamic_func_call_no_desc(fmt, btrfs_printk_rl_in_rcu, \
97100
fs_info, KERN_DEBUG fmt, ##args)
98101
#elif defined(DEBUG)
99102
#define btrfs_debug(fs_info, fmt, args...) \
100-
btrfs_printk(fs_info, KERN_DEBUG fmt, ##args)
103+
btrfs_printk_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
101104
#define btrfs_debug_in_rcu(fs_info, fmt, args...) \
102105
btrfs_printk_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
103106
#define btrfs_debug_rl_in_rcu(fs_info, fmt, args...) \
104107
btrfs_printk_rl_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
105108
#define btrfs_debug_rl(fs_info, fmt, args...) \
106-
btrfs_printk_ratelimited(fs_info, KERN_DEBUG fmt, ##args)
109+
btrfs_printk_rl_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
107110
#else
108111
#define btrfs_debug(fs_info, fmt, args...) \
109-
btrfs_no_printk(fs_info, KERN_DEBUG fmt, ##args)
112+
btrfs_no_printk_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
110113
#define btrfs_debug_in_rcu(fs_info, fmt, args...) \
111114
btrfs_no_printk_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
112115
#define btrfs_debug_rl_in_rcu(fs_info, fmt, args...) \
113116
btrfs_no_printk_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
114117
#define btrfs_debug_rl(fs_info, fmt, args...) \
115-
btrfs_no_printk(fs_info, KERN_DEBUG fmt, ##args)
118+
btrfs_no_printk_in_rcu(fs_info, KERN_DEBUG fmt, ##args)
116119
#endif
117120

118121
#define btrfs_printk_in_rcu(fs_info, fmt, args...) \

0 commit comments

Comments
 (0)