Fix return error code for effects-log command
Resolves: #2105742 Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
This commit is contained in:
parent
95d0ce9acd
commit
6b792a1ff4
102
0001-nvme-Return-status-error-code-for-effects-log-comman.patch
Normal file
102
0001-nvme-Return-status-error-code-for-effects-log-comman.patch
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
From 43c1ac652b74182e483f2e8033a5f5fe417fb429 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel Wagner <dwagner@suse.de>
|
||||||
|
Date: Mon, 11 Jul 2022 13:39:39 +0200
|
||||||
|
Subject: [PATCH] nvme: Return status/error code for effects-log command
|
||||||
|
|
||||||
|
collect_effects_log eats up the return code from
|
||||||
|
nvme_get_log_cmd_effects. Forward it to the shell..
|
||||||
|
|
||||||
|
Fixes: 155fbebfe7b7 ("Update effects-log to handle multiple command sets")
|
||||||
|
|
||||||
|
Signed-off-by: Daniel Wagner <dwagner@suse.de>
|
||||||
|
---
|
||||||
|
nvme.c | 44 ++++++++++++++++++++++++--------------------
|
||||||
|
1 file changed, 24 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/nvme.c b/nvme.c
|
||||||
|
index a2a9996a..6df08d7e 100644
|
||||||
|
--- a/nvme.c
|
||||||
|
+++ b/nvme.c
|
||||||
|
@@ -587,18 +587,22 @@ ret:
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
-void collect_effects_log(int fd, enum nvme_csi csi, struct list_head *list, int flags)
|
||||||
|
+static int collect_effects_log(int fd, enum nvme_csi csi,
|
||||||
|
+ struct list_head *list, int flags)
|
||||||
|
{
|
||||||
|
+ nvme_effects_log_node_t *node;
|
||||||
|
int err;
|
||||||
|
- nvme_effects_log_node_t *node = malloc(sizeof(nvme_effects_log_node_t));
|
||||||
|
+
|
||||||
|
+ node = malloc(sizeof(nvme_effects_log_node_t));
|
||||||
|
if (!node)
|
||||||
|
- return;
|
||||||
|
+ return -ENOMEM;
|
||||||
|
+
|
||||||
|
node->csi = csi;
|
||||||
|
|
||||||
|
err = nvme_get_log_cmd_effects(fd, csi, &node->effects);
|
||||||
|
if (!err) {
|
||||||
|
list_add(list, &node->node);
|
||||||
|
- return;
|
||||||
|
+ return err;
|
||||||
|
}
|
||||||
|
else if (err > 0)
|
||||||
|
nvme_show_status(err);
|
||||||
|
@@ -606,6 +610,7 @@ void collect_effects_log(int fd, enum nvme_csi csi, struct list_head *list, int
|
||||||
|
fprintf(stderr, "effects log page: %s\n", nvme_strerror(errno));
|
||||||
|
|
||||||
|
free(node);
|
||||||
|
+ return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int get_effects_log(int argc, char **argv, struct command *cmd, struct plugin *plugin)
|
||||||
|
@@ -676,29 +681,28 @@ static int get_effects_log(int argc, char **argv, struct command *cmd, struct pl
|
||||||
|
nvme_command_set_supported = NVME_CAP_CSS(cap) & NVME_CAP_CSS_NVM;
|
||||||
|
other_command_sets_supported = NVME_CAP_CSS(cap) & NVME_CAP_CSS_CSI;
|
||||||
|
|
||||||
|
+ if (nvme_command_set_supported)
|
||||||
|
+ err = collect_effects_log(fd, NVME_CSI_NVM,
|
||||||
|
+ &log_pages, flags);
|
||||||
|
|
||||||
|
- if (nvme_command_set_supported) {
|
||||||
|
- collect_effects_log(fd, NVME_CSI_NVM, &log_pages, flags);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (other_command_sets_supported) {
|
||||||
|
- collect_effects_log(fd, NVME_CSI_ZNS, &log_pages, flags);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- nvme_print_effects_log_pages(&log_pages, flags);
|
||||||
|
+ if (!err && other_command_sets_supported)
|
||||||
|
+ err = collect_effects_log(fd, NVME_CSI_ZNS,
|
||||||
|
+ &log_pages, flags);
|
||||||
|
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- collect_effects_log(fd, cfg.csi, &log_pages, flags);
|
||||||
|
- nvme_print_effects_log_pages(&log_pages, flags);
|
||||||
|
+ } else {
|
||||||
|
+ err = collect_effects_log(fd, cfg.csi, &log_pages, flags);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (!err)
|
||||||
|
+ nvme_print_effects_log_pages(&log_pages, flags);
|
||||||
|
+ else if (err > 0)
|
||||||
|
+ nvme_show_status(err);
|
||||||
|
+ else
|
||||||
|
+ perror("effects log page");
|
||||||
|
|
||||||
|
close_fd:
|
||||||
|
- while ((node = list_pop(&log_pages, nvme_effects_log_node_t, node))) {
|
||||||
|
+ while ((node = list_pop(&log_pages, nvme_effects_log_node_t, node)))
|
||||||
|
free(node);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
close(fd);
|
||||||
|
ret:
|
||||||
|
return err;
|
||||||
|
--
|
||||||
|
2.31.1
|
||||||
|
|
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Name: nvme-cli
|
Name: nvme-cli
|
||||||
Version: 2.0
|
Version: 2.0
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: NVMe management command line interface
|
Summary: NVMe management command line interface
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -11,6 +11,7 @@ URL: https://github.com/linux-nvme/nvme-cli
|
|||||||
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||||
|
|
||||||
#Patch0: nvme-cli-makefile-dont-install-host-params-patch
|
#Patch0: nvme-cli-makefile-dont-install-host-params-patch
|
||||||
|
Patch0: 0001-nvme-Return-status-error-code-for-effects-log-comman.patch
|
||||||
|
|
||||||
BuildRequires: meson >= 0.47.0
|
BuildRequires: meson >= 0.47.0
|
||||||
BuildRequires: gcc gcc-c++
|
BuildRequires: gcc gcc-c++
|
||||||
@ -30,7 +31,8 @@ nvme-cli provides NVM-Express user space tooling for Linux.
|
|||||||
%prep
|
%prep
|
||||||
#%%setup -qn %%{name}-%%{commit0}
|
#%%setup -qn %%{name}-%%{commit0}
|
||||||
%setup -q
|
%setup -q
|
||||||
#%patch0 -p1
|
|
||||||
|
%patch0 -p1
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -88,6 +90,9 @@ if [ $1 -eq 1 ] || [ $1 -eq 2 ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Jul 15 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-3
|
||||||
|
- Fix BZ2105742
|
||||||
|
|
||||||
* Thu Jun 16 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-2
|
* Thu Jun 16 2022 Maurizio Lombardi <mlombard@redhat.com> - 2.0-2
|
||||||
- Fix the gating tests
|
- Fix the gating tests
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user