From: Racz Zoltan <racz.zoli@gmail.com>
To: dsterba@suse.cz
Cc: linux-btrfs@vger.kernel.org, Racz Zoltan <racz.zoli@gmail.com>
Subject: [PATCH 2/6] btrfs-progs: Added json output format for print_scrub_full
Date: Fri, 14 Feb 2025 18:47:05 +0200 [thread overview]
Message-ID: <20250214164709.51465-3-racz.zoli@gmail.com> (raw)
In-Reply-To: <20250214164709.51465-1-racz.zoli@gmail.com>
---
cmds/scrub.c | 52 +++++++++++++++++++++++++++++++++++++---------------
1 file changed, 37 insertions(+), 15 deletions(-)
diff --git a/cmds/scrub.c b/cmds/scrub.c
index f049e1ed..caada704 100644
--- a/cmds/scrub.c
+++ b/cmds/scrub.c
@@ -162,21 +162,43 @@ static const struct rowspec scrub_status_rowspec[] = {
static void print_scrub_full(struct btrfs_scrub_progress *sp)
{
- pr_verbose(LOG_DEFAULT, "\tdata_extents_scrubbed: %llu\n", sp->data_extents_scrubbed);
- pr_verbose(LOG_DEFAULT, "\ttree_extents_scrubbed: %llu\n", sp->tree_extents_scrubbed);
- pr_verbose(LOG_DEFAULT, "\tdata_bytes_scrubbed: %llu\n", sp->data_bytes_scrubbed);
- pr_verbose(LOG_DEFAULT, "\ttree_bytes_scrubbed: %llu\n", sp->tree_bytes_scrubbed);
- pr_verbose(LOG_DEFAULT, "\tread_errors: %llu\n", sp->read_errors);
- pr_verbose(LOG_DEFAULT, "\tcsum_errors: %llu\n", sp->csum_errors);
- pr_verbose(LOG_DEFAULT, "\tverify_errors: %llu\n", sp->verify_errors);
- pr_verbose(LOG_DEFAULT, "\tno_csum: %llu\n", sp->no_csum);
- pr_verbose(LOG_DEFAULT, "\tcsum_discards: %llu\n", sp->csum_discards);
- pr_verbose(LOG_DEFAULT, "\tsuper_errors: %llu\n", sp->super_errors);
- pr_verbose(LOG_DEFAULT, "\tmalloc_errors: %llu\n", sp->malloc_errors);
- pr_verbose(LOG_DEFAULT, "\tuncorrectable_errors: %llu\n", sp->uncorrectable_errors);
- pr_verbose(LOG_DEFAULT, "\tunverified_errors: %llu\n", sp->unverified_errors);
- pr_verbose(LOG_DEFAULT, "\tcorrected_errors: %llu\n", sp->corrected_errors);
- pr_verbose(LOG_DEFAULT, "\tlast_physical: %llu\n", sp->last_physical);
+ if (bconf.output_format == CMD_FORMAT_JSON) {
+ fmt_print_start_group(&fctx, "scrub", JSON_TYPE_MAP);
+
+ fmt_print(&fctx, "data-extents-scrubbed", sp->data_extents_scrubbed);
+ fmt_print(&fctx, "tree-extents-scrubbed", sp->tree_extents_scrubbed);
+ fmt_print(&fctx, "data-bytes-scrubbed", sp->data_bytes_scrubbed);
+ fmt_print(&fctx, "tree-bytes-scrubbed", sp->tree_bytes_scrubbed);
+ fmt_print(&fctx, "read-errors", sp->read_errors);
+ fmt_print(&fctx, "csum-errors", sp->csum_errors);
+ fmt_print(&fctx, "verify-errors", sp->verify_errors);
+ fmt_print(&fctx, "no-csum", sp->no_csum);
+ fmt_print(&fctx, "csum-discards", sp->csum_discards);
+ fmt_print(&fctx, "super-errors", sp->super_errors);
+ fmt_print(&fctx, "malloc-errors", sp->malloc_errors);
+ fmt_print(&fctx, "uncorrectable-errors", sp->uncorrectable_errors);
+ fmt_print(&fctx, "unverified-errors", sp->unverified_errors);
+ fmt_print(&fctx, "corrected-errors", sp->corrected_errors);
+ fmt_print(&fctx, "last-physical", sp->last_physical);
+
+ fmt_print_end_group(&fctx, "scrub");
+ } else {
+ pr_verbose(LOG_DEFAULT, "\tdata_extents_scrubbed: %llu\n", sp->data_extents_scrubbed);
+ pr_verbose(LOG_DEFAULT, "\ttree_extents_scrubbed: %llu\n", sp->tree_extents_scrubbed);
+ pr_verbose(LOG_DEFAULT, "\tdata_bytes_scrubbed: %llu\n", sp->data_bytes_scrubbed);
+ pr_verbose(LOG_DEFAULT, "\ttree_bytes_scrubbed: %llu\n", sp->tree_bytes_scrubbed);
+ pr_verbose(LOG_DEFAULT, "\tread_errors: %llu\n", sp->read_errors);
+ pr_verbose(LOG_DEFAULT, "\tcsum_errors: %llu\n", sp->csum_errors);
+ pr_verbose(LOG_DEFAULT, "\tverify_errors: %llu\n", sp->verify_errors);
+ pr_verbose(LOG_DEFAULT, "\tno_csum: %llu\n", sp->no_csum);
+ pr_verbose(LOG_DEFAULT, "\tcsum_discards: %llu\n", sp->csum_discards);
+ pr_verbose(LOG_DEFAULT, "\tsuper_errors: %llu\n", sp->super_errors);
+ pr_verbose(LOG_DEFAULT, "\tmalloc_errors: %llu\n", sp->malloc_errors);
+ pr_verbose(LOG_DEFAULT, "\tuncorrectable_errors: %llu\n", sp->uncorrectable_errors);
+ pr_verbose(LOG_DEFAULT, "\tunverified_errors: %llu\n", sp->unverified_errors);
+ pr_verbose(LOG_DEFAULT, "\tcorrected_errors: %llu\n", sp->corrected_errors);
+ pr_verbose(LOG_DEFAULT, "\tlast_physical: %llu\n", sp->last_physical);
+ }
}
#define PRINT_SCRUB_ERROR(test, desc) do { \
--
2.48.1
next prev parent reply other threads:[~2025-02-14 16:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-14 16:47 [PATCH 0/6] btrfs-progs: V2 scrub status: add json output format Racz Zoltan
2025-02-14 16:47 ` [PATCH 1/6] btrfs-progs: Added rowspec struct and neccesary include file for " Racz Zoltan
2025-02-14 16:47 ` Racz Zoltan [this message]
2025-02-14 16:47 ` [PATCH 3/6] btrfs-progs: Added json output format for print_scrub_summary Racz Zoltan
2025-02-14 16:47 ` [PATCH 4/6] btrfs-progs: Added json output format for _print_scrub_ss and print_scrub_dev Racz Zoltan
2025-02-14 16:47 ` [PATCH 5/6] btrfs-progs: Added json output format for cmd_scrub_status Racz Zoltan
2025-02-14 16:47 ` [PATCH 6/6] btrfs-progs: Corrected a minor JSON string error in print_scrub_dev Racz Zoltan
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=20250214164709.51465-3-racz.zoli@gmail.com \
--to=racz.zoli@gmail.com \
--cc=dsterba@suse.cz \
--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