btrfs: add multi-statement protection to btrfs_set/clear_and_info macros
Multi-statement macros should be enclosed in do/while(0) block to make their use safe in single statement if conditions. All current uses of the macros are safe, so this change is for future protection. Reviewed-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:

committed by
David Sterba

parent
93c4c033ec
commit
60f8667b61
@@ -1279,18 +1279,18 @@ static inline u32 BTRFS_MAX_XATTR_SIZE(const struct btrfs_fs_info *info)
|
|||||||
BTRFS_MOUNT_##opt)
|
BTRFS_MOUNT_##opt)
|
||||||
|
|
||||||
#define btrfs_set_and_info(fs_info, opt, fmt, args...) \
|
#define btrfs_set_and_info(fs_info, opt, fmt, args...) \
|
||||||
{ \
|
do { \
|
||||||
if (!btrfs_test_opt(fs_info, opt)) \
|
if (!btrfs_test_opt(fs_info, opt)) \
|
||||||
btrfs_info(fs_info, fmt, ##args); \
|
btrfs_info(fs_info, fmt, ##args); \
|
||||||
btrfs_set_opt(fs_info->mount_opt, opt); \
|
btrfs_set_opt(fs_info->mount_opt, opt); \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
#define btrfs_clear_and_info(fs_info, opt, fmt, args...) \
|
#define btrfs_clear_and_info(fs_info, opt, fmt, args...) \
|
||||||
{ \
|
do { \
|
||||||
if (btrfs_test_opt(fs_info, opt)) \
|
if (btrfs_test_opt(fs_info, opt)) \
|
||||||
btrfs_info(fs_info, fmt, ##args); \
|
btrfs_info(fs_info, fmt, ##args); \
|
||||||
btrfs_clear_opt(fs_info->mount_opt, opt); \
|
btrfs_clear_opt(fs_info->mount_opt, opt); \
|
||||||
}
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Requests for changes that need to be done during transaction commit.
|
* Requests for changes that need to be done during transaction commit.
|
||||||
|
Reference in New Issue
Block a user