Re: [PATCH 2/4] btrfs-progs: Make btrfs-debug-tree print all readable strings for inode flags
On Tue, Oct 11, 2016 at 10:18:51AM +0800, Qu Wenruo wrote: > >> -/* Caller should ensure sizeof(*ret) >= 29 "NODATASUM|NODATACOW|READONLY" > >> */ > >> +#define copy_one_inode_flag(flags, name, empty, dst) ({ > >> \ > >> + if (flags & BTRFS_INODE_##name) { \ > >> + if (!empty) \ > >> + strcat(dst, "|"); \ > >> + strcat(dst, #name); \ > >> + empty = 0; \ > >> + } \ > >> +}) > > > > Can you please avoid using the macro? Or at least make it uppercase so > > it's visible. Similar in the next patch. > > > > > OK, I'll change it to upper case. Ok. > The only reason I'm using macro is, inline function can't do > stringification, or I missed something? No, that's where macros help. My concern was about the hidden use of a local variable, so at least an all-caps macro name would make it more visible. As this is not going to be used elsewhere, we can live with that. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] btrfs-progs: Make btrfs-debug-tree print all readable strings for inode flags
At 10/10/2016 11:50 PM, David Sterba wrote: On Mon, Oct 10, 2016 at 11:11:19AM +0800, Qu Wenruo wrote: Before this patch, only 3 inode flags have readable string: NODATACOW, NODATASUM, READONLY. This patch will output all readable strings for remaining inode flags, making debug-tree tool more handy. Signed-off-by: Qu Wenruo--- print-tree.c | 46 ++ 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/print-tree.c b/print-tree.c index a14..f015646 100644 --- a/print-tree.c +++ b/print-tree.c @@ -851,29 +851,35 @@ static void print_uuid_item(struct extent_buffer *l, unsigned long offset, } } -/* Caller should ensure sizeof(*ret) >= 29 "NODATASUM|NODATACOW|READONLY" */ +#define copy_one_inode_flag(flags, name, empty, dst) ({ \ + if (flags & BTRFS_INODE_##name) { \ + if (!empty) \ + strcat(dst, "|"); \ + strcat(dst, #name); \ + empty = 0; \ + } \ +}) Can you please avoid using the macro? Or at least make it uppercase so it's visible. Similar in the next patch. OK, I'll change it to upper case. The only reason I'm using macro is, inline function can't do stringification, or I missed something? Thanks, Qu -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 2/4] btrfs-progs: Make btrfs-debug-tree print all readable strings for inode flags
On Mon, Oct 10, 2016 at 11:11:19AM +0800, Qu Wenruo wrote: > Before this patch, only 3 inode flags have readable string: NODATACOW, > NODATASUM, READONLY. > > This patch will output all readable strings for remaining inode flags, > making debug-tree tool more handy. > > Signed-off-by: Qu Wenruo> --- > print-tree.c | 46 ++ > 1 file changed, 26 insertions(+), 20 deletions(-) > > diff --git a/print-tree.c b/print-tree.c > index a14..f015646 100644 > --- a/print-tree.c > +++ b/print-tree.c > @@ -851,29 +851,35 @@ static void print_uuid_item(struct extent_buffer *l, > unsigned long offset, > } > } > > -/* Caller should ensure sizeof(*ret) >= 29 "NODATASUM|NODATACOW|READONLY" */ > +#define copy_one_inode_flag(flags, name, empty, dst) ({ > \ > + if (flags & BTRFS_INODE_##name) { \ > + if (!empty) \ > + strcat(dst, "|"); \ > + strcat(dst, #name); \ > + empty = 0; \ > + } \ > +}) Can you please avoid using the macro? Or at least make it uppercase so it's visible. Similar in the next patch. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html