From: Wang Yugui <wangyugui@e16-tech.com>
To: linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] btrfs-progs: Make "btrfs filesystem df" command to show upper case profile
Date: Tue, 02 Nov 2021 20:23:45 +0800 [thread overview]
Message-ID: <20211102202345.1D25.409509F4@e16-tech.com> (raw)
In-Reply-To: <20211102104758.39871-1-wqu@suse.com>
Hi,
before Commit dad03fac3bb8 ("btrfs-progs: switch btrfs_group_profile_str to use
raid table") , 'single' is lower case. others, such as RAID1 , are
upper case.
I don't know whether it is necessary to keep 'single' as lower case.
maybe we can change the array value directly?
./kernel-shared/volumes.c:62: [BTRFS_RAID_RAID1C3] = {
./kernel-shared/volumes.c:71: .raid_name = "raid1c3",
Best Regards
Wang Yugui (wangyugui@e16-tech.com)
2021/11/02
> [BUG]
> Since commit dad03fac3bb8 ("btrfs-progs: switch btrfs_group_profile_str
> to use raid table"), fstests/btrfs/023 and btrfs/151 will always fail.
>
> The failure of btrfs/151 explains the reason pretty well:
>
> btrfs/151 1s ... - output mismatch
> --- tests/btrfs/151.out 2019-10-22 15:18:14.068965341 +0800
> +++ ~/xfstests-dev/results//btrfs/151.out.bad 2021-11-02 17:13:43.879999994 +0800
> @@ -1,2 +1,2 @@
> QA output created by 151
> -Data, RAID1
> +Data, raid1
> ...
> (Run 'diff -u ~/xfstests-dev/tests/btrfs/151.out ~/xfstests-dev/results//btrfs/151.out.bad' to see the entire diff)
>
> [CAUSE]
> Commit dad03fac3bb8 ("btrfs-progs: switch btrfs_group_profile_str to use
> raid table") will use btrfs_raid_array[index].raid_name, which is all
> lower case.
>
> [FIX]
> There is no need to bring such output format change.
>
> So here we adds a new helper function, btrfs_group_profile_upper_str()
> to print the upper case profile name.
>
> Signed-off-by: Qu Wenruo <wqu@suse.com>
> ---
> cmds/filesystem.c | 4 +++-
> common/utils.c | 10 ++++++++++
> common/utils.h | 3 +++
> 3 files changed, 16 insertions(+), 1 deletion(-)
>
> diff --git a/cmds/filesystem.c b/cmds/filesystem.c
> index 6a9e46d2b7dc..9f49b7d0c9c5 100644
> --- a/cmds/filesystem.c
> +++ b/cmds/filesystem.c
> @@ -72,6 +72,7 @@ static void print_df(int fd, struct btrfs_ioctl_space_args *sargs, unsigned unit
> {
> u64 i;
> struct btrfs_ioctl_space_info *sp = sargs->spaces;
> + char profile_buf[BTRFS_PROFILE_STR_LEN];
> u64 unusable;
> bool ok;
>
> @@ -79,9 +80,10 @@ static void print_df(int fd, struct btrfs_ioctl_space_args *sargs, unsigned unit
> unusable = device_get_zone_unusable(fd, sp->flags);
> ok = (unusable != DEVICE_ZONE_UNUSABLE_UNKNOWN);
>
> + btrfs_group_profile_upper_str(sp->flags, profile_buf);
> printf("%s, %s: total=%s, used=%s%s%s\n",
> btrfs_group_type_str(sp->flags),
> - btrfs_group_profile_str(sp->flags),
> + profile_buf,
> pretty_size_mode(sp->total_bytes, unit_mode),
> pretty_size_mode(sp->used_bytes, unit_mode),
> (ok ? ", zone_unusable=" : ""),
> diff --git a/common/utils.c b/common/utils.c
> index aee0eedc15fc..32ca6b2ef432 100644
> --- a/common/utils.c
> +++ b/common/utils.c
> @@ -1038,6 +1038,16 @@ const char* btrfs_group_profile_str(u64 flag)
> return btrfs_raid_array[index].raid_name;
> }
>
> +void btrfs_group_profile_upper_str(u64 flags, char *ret)
> +{
> + int i;
> +
> + strncpy(ret, btrfs_group_profile_str(flags), BTRFS_PROFILE_STR_LEN);
> +
> + for (i = 0; i < BTRFS_PROFILE_STR_LEN && ret[i]; i++)
> + ret[i] = toupper(ret[i]);
> +}
> +
> u64 div_factor(u64 num, int factor)
> {
> if (factor == 10)
> diff --git a/common/utils.h b/common/utils.h
> index 6f84e3cbc98f..0c1b6baa7ae3 100644
> --- a/common/utils.h
> +++ b/common/utils.h
> @@ -75,6 +75,9 @@ int find_next_key(struct btrfs_path *path, struct btrfs_key *key);
> const char* btrfs_group_type_str(u64 flag);
> const char* btrfs_group_profile_str(u64 flag);
>
> +#define BTRFS_PROFILE_STR_LEN (64)
> +void btrfs_group_profile_upper_str(u64 flag, char *ret);
> +
> int count_digits(u64 num);
> u64 div_factor(u64 num, int factor);
>
> --
> 2.33.1
next prev parent reply other threads:[~2021-11-02 12:23 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-02 10:47 [PATCH] btrfs-progs: Make "btrfs filesystem df" command to show upper case profile Qu Wenruo
2021-11-02 11:52 ` Su Yue
2021-11-02 12:05 ` Qu Wenruo
2021-11-02 12:23 ` Wang Yugui [this message]
2021-11-02 16:08 ` David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211102202345.1D25.409509F4@e16-tech.com \
--to=wangyugui@e16-tech.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox