From: Steven Seungcheol Lee Date: Tue, 8 Mar 2022 07:07:09 +0000 (+0900) Subject: nvme: list_ns bug fix (csi option enable) X-Git-Tag: v2.0-rc6~8^2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=61aa104b6b871916a4cc56cc04e6d59bba0e14bf;p=users%2Fsagi%2Fnvme-cli.git nvme: list_ns bug fix (csi option enable) recover functionallty of 7f8d194e2532ba5c8240d731e87c39186ba03764 list ns with CNS(0x07, 0x1A) enabled Reported-by: Kyungsik Shin Signed-off-by: Steven Seungcheol Lee --- diff --git a/nvme.c b/nvme.c index bbaee051..d93c33b9 100644 --- a/nvme.c +++ b/nvme.c @@ -1936,18 +1936,19 @@ static int list_ns(int argc, char **argv, struct command *cmd, struct plugin *pl struct config { __u32 namespace_id; int all; - __u8 csi; + int csi; char *output_format; }; struct config cfg = { .namespace_id = 1, .output_format = "normal", + .csi = -1, }; OPT_ARGS(opts) = { OPT_UINT("namespace-id", 'n', &cfg.namespace_id, namespace_id), - OPT_BYTE("csi", 'y', &cfg.csi, csi), + OPT_INT("csi", 'y', &cfg.csi, csi), OPT_FLAG("all", 'a', &cfg.all, all), OPT_FMT("output-format", 'o', &cfg.output_format, output_format_no_binary), OPT_END() @@ -1971,12 +1972,23 @@ static int list_ns(int argc, char **argv, struct command *cmd, struct plugin *pl goto close_fd; } - if (cfg.all) - err = nvme_identify_allocated_ns_list(fd, cfg.namespace_id - 1, - &ns_list); - else - err = nvme_identify_active_ns_list(fd, cfg.namespace_id - 1, - &ns_list); + if (cfg.csi < 0) { + if (cfg.all) + err = nvme_identify_allocated_ns_list(fd, + cfg.namespace_id - 1, &ns_list); + else + err = nvme_identify_active_ns_list(fd, + cfg.namespace_id - 1, &ns_list); + + } else { + if (cfg.all) + err = nvme_identify_allocated_ns_list_csi(fd, + cfg.namespace_id - 1, cfg.csi, &ns_list); + else + err = nvme_identify_active_ns_list_csi(fd, + cfg.namespace_id - 1, cfg.csi, &ns_list); + } + if (!err) nvme_show_list_ns(&ns_list, flags); else if (err > 0)