btrfs: ctree: Add do {} while (0) in btrfs_{set|clear}_and_info
diff mbox series

Message ID 20200706145936.13620-1-marcos@mpdesouza.com
State New
Headers show
Series
  • btrfs: ctree: Add do {} while (0) in btrfs_{set|clear}_and_info
Related show

Commit Message

Marcos Paulo de Souza July 6, 2020, 2:59 p.m. UTC
From: Marcos Paulo de Souza <mpdesouza@suse.com>

Without this change it's not possible to use these macros and having an
if-else construction without using braces.

Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
---
 fs/btrfs/ctree.h | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Nikolay Borisov July 7, 2020, 8:34 a.m. UTC | #1
On 6.07.20 г. 17:59 ч., Marcos Paulo de Souza wrote:
> From: Marcos Paulo de Souza <mpdesouza@suse.com>
> 
> Without this change it's not possible to use these macros and having an
> if-else construction without using braces.
> 
> Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>

This change would have been better accompanied with another one showing
intended usage. If it's part of a bigger rework then postpone it and
send everything altogether.

> ---
>  fs/btrfs/ctree.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index a256961c0dbe..cef0489a1523 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -1278,18 +1278,18 @@ static inline u32 BTRFS_MAX_XATTR_SIZE(const struct btrfs_fs_info *info)
>  					 BTRFS_MOUNT_##opt)
>  
>  #define btrfs_set_and_info(fs_info, opt, fmt, args...)			\
> -{									\
> +do {									\
>  	if (!btrfs_test_opt(fs_info, opt))				\
>  		btrfs_info(fs_info, fmt, ##args);			\
>  	btrfs_set_opt(fs_info->mount_opt, opt);				\
> -}
> +} while (0)
>  
>  #define btrfs_clear_and_info(fs_info, opt, fmt, args...)		\
> -{									\
> +do {									\
>  	if (btrfs_test_opt(fs_info, opt))				\
>  		btrfs_info(fs_info, fmt, ##args);			\
>  	btrfs_clear_opt(fs_info->mount_opt, opt);			\
> -}
> +} while (0)
>  
>  /*
>   * Requests for changes that need to be done during transaction commit.
>
Marcos Paulo de Souza July 7, 2020, 1:38 p.m. UTC | #2
On Tue, 2020-07-07 at 11:34 +0300, Nikolay Borisov wrote:
> 
> On 6.07.20 г. 17:59 ч., Marcos Paulo de Souza wrote:
> > From: Marcos Paulo de Souza <mpdesouza@suse.com>
> > 
> > Without this change it's not possible to use these macros and
> having an
> > if-else construction without using braces.
> > 
> > Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
> 
> This change would have been better accompanied with another one
> showing
> intended usage. If it's part of a bigger rework then postpone it and
> send everything altogether.

Yes, this is part of my fscontext btrfs port. Ok, I'll send this again
again along with all the port patches.

Thanks,
  Marcos

> 
> > ---
> >  fs/btrfs/ctree.h | 8 ++++----
> >  1 file changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> > index a256961c0dbe..cef0489a1523 100644
> > --- a/fs/btrfs/ctree.h
> > +++ b/fs/btrfs/ctree.h
> > @@ -1278,18 +1278,18 @@ static inline u32
> BTRFS_MAX_XATTR_SIZE(const struct btrfs_fs_info *info)
> >  					 BTRFS_MOUNT_##opt)
> >  
> >  #define btrfs_set_and_info(fs_info, opt, fmt, args...)		
> 	\
> > -{									
> \
> > +do {								
> 	\
> >  	if (!btrfs_test_opt(fs_info, opt))				
> \
> >  		btrfs_info(fs_info, fmt, ##args);			\
> >  	btrfs_set_opt(fs_info->mount_opt, opt);				
> \
> > -}
> > +} while (0)
> >  
> >  #define btrfs_clear_and_info(fs_info, opt, fmt, args...)		
> \
> > -{									
> \
> > +do {								
> 	\
> >  	if (btrfs_test_opt(fs_info, opt))				\
> >  		btrfs_info(fs_info, fmt, ##args);			\
> >  	btrfs_clear_opt(fs_info->mount_opt, opt);			\
> > -}
> > +} while (0)
> >  
> >  /*
> >   * Requests for changes that need to be done during transaction
> commit.
> >
David Sterba July 7, 2020, 2:10 p.m. UTC | #3
On Tue, Jul 07, 2020 at 11:34:12AM +0300, Nikolay Borisov wrote:
> 
> 
> On 6.07.20 г. 17:59 ч., Marcos Paulo de Souza wrote:
> > From: Marcos Paulo de Souza <mpdesouza@suse.com>
> > 
> > Without this change it's not possible to use these macros and having an
> > if-else construction without using braces.
> > 
> > Signed-off-by: Marcos Paulo de Souza <mpdesouza@suse.com>
> 
> This change would have been better accompanied with another one showing
> intended usage. If it's part of a bigger rework then postpone it and
> send everything altogether.

I think the change is good as is, multi-statement macros should always be
enclosed in do {} while(0);
Anand Jain July 7, 2020, 2:23 p.m. UTC | #4
Reviewed-by: Anand Jain <anand.jain@oracle.com>

Patch
diff mbox series

diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
index a256961c0dbe..cef0489a1523 100644
--- a/fs/btrfs/ctree.h
+++ b/fs/btrfs/ctree.h
@@ -1278,18 +1278,18 @@  static inline u32 BTRFS_MAX_XATTR_SIZE(const struct btrfs_fs_info *info)
 					 BTRFS_MOUNT_##opt)
 
 #define btrfs_set_and_info(fs_info, opt, fmt, args...)			\
-{									\
+do {									\
 	if (!btrfs_test_opt(fs_info, opt))				\
 		btrfs_info(fs_info, fmt, ##args);			\
 	btrfs_set_opt(fs_info->mount_opt, opt);				\
-}
+} while (0)
 
 #define btrfs_clear_and_info(fs_info, opt, fmt, args...)		\
-{									\
+do {									\
 	if (btrfs_test_opt(fs_info, opt))				\
 		btrfs_info(fs_info, fmt, ##args);			\
 	btrfs_clear_opt(fs_info->mount_opt, opt);			\
-}
+} while (0)
 
 /*
  * Requests for changes that need to be done during transaction commit.