From: Qu Wenruo <wqu@suse.com>
To: linux-btrfs@vger.kernel.org
Subject: [PATCH] btrfs-progs: Make "btrfs filesystem df" command to show upper case profile
Date: Tue, 2 Nov 2021 18:47:58 +0800 [thread overview]
Message-ID: <20211102104758.39871-1-wqu@suse.com> (raw)
[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 reply other threads:[~2021-11-02 10:48 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-02 10:47 Qu Wenruo [this message]
2021-11-02 11:52 ` [PATCH] btrfs-progs: Make "btrfs filesystem df" command to show upper case profile Su Yue
2021-11-02 12:05 ` Qu Wenruo
2021-11-02 12:23 ` Wang Yugui
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=20211102104758.39871-1-wqu@suse.com \
--to=wqu@suse.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