From 37123321b42527c71b7d92894734766cdf33c00e Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Mon, 30 Mar 2026 11:45:33 +0200 Subject: [PATCH 1/2] fabrics: dump config on stdout The config should be dumped on stdout not stderr. Fixes: 74b30d2556c3 ("json: update nvme_dump_config to a file descriptor") Signed-off-by: Daniel Wagner --- fabrics.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fabrics.c b/fabrics.c index 18a0d3982a..543f047efe 100644 --- a/fabrics.c +++ b/fabrics.c @@ -679,7 +679,7 @@ int fabrics_connect(const char *desc, int argc, char **argv) } if (dump_config) - nvme_dump_config(ctx, STDERR_FILENO); + nvme_dump_config(ctx, STDOUT_FILENO); return 0; } From 9308c7bb2441189badaf86e105ca9755e4e32f31 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Mon, 30 Mar 2026 11:51:56 +0200 Subject: [PATCH 2/2] fabrics: do not print device name when dumping config When the user asks for dumping the config, don't print the device name on connect. This can result in invalid JSON output. Signed-off-by: Daniel Wagner --- fabrics.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/fabrics.c b/fabrics.c index 543f047efe..fb681d5a38 100644 --- a/fabrics.c +++ b/fabrics.c @@ -175,6 +175,7 @@ static int setup_common_context(struct nvmf_context *fctx, struct cb_fabrics_data { struct nvme_fabrics_config *cfg; nvme_print_flags_t flags; + bool quiet; char *raw; char **argv; FILE *f; @@ -196,6 +197,9 @@ static void cb_connected(struct nvmf_context *fctx, { struct cb_fabrics_data *cfd = user_data; + if (cfd->quiet) + return; + if (cfd->flags == NORMAL) { printf("device: %s\n", nvme_ctrl_get_name(c)); return; @@ -659,12 +663,13 @@ int fabrics_connect(const char *desc, int argc, char **argv) return ret; } - struct cb_fabrics_data dld = { + struct cb_fabrics_data cfd = { .flags = flags, + .quiet = dump_config, .raw = raw, }; ret = create_common_context(ctx, persistent, &fa, - &cfg, &dld, &fctx); + &cfg, &cfd, &fctx); if (ret) return ret;