diff --git a/SOURCES/0017-fabrics-Fix-ordering-for-auto-connect-services.patch b/SOURCES/0017-fabrics-Fix-ordering-for-auto-connect-services.patch new file mode 100644 index 0000000..c38109d --- /dev/null +++ b/SOURCES/0017-fabrics-Fix-ordering-for-auto-connect-services.patch @@ -0,0 +1,65 @@ +From ad9f35c0bf8a71c6a4b7586d7553b8e9d171f48e Mon Sep 17 00:00:00 2001 +From: Daniel Wagner +Date: Tue, 7 Mar 2023 10:24:01 +0100 +Subject: [PATCH] fabrics: Fix ordering for auto connect services + +In order to be able to mount file systems via /etc/fstab we have to +make sure that the corresponding auto connect services have been +executed. Because the mounting of the local filesystem happens very +early in the boot we have to carefully sort these service file into the +boot process. + +First, we have to disable the DefaultDependency as this will +automatically add dependency on sysinit.target which is too late (after +local mounts). Though without the default dependency we have to provide +a Before and After conditions. + +The Before is simple as we have a local-fs-pre target. The After +is a bit tricky as there are no targets available. + +Because the whole autoconnect machinery depends on udev events being +delivered we place the service after systemd-udevd has been started. + +Link: https://www.freedesktop.org/software/systemd/man/bootup.html +Reported-by: Maurizio Lombardi +Reported-by: Wen Xiong +Tested-by: Maurizio Lombardi +Tested-by: Wen Xiong +Signed-off-by: Daniel Wagner +--- + nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in | 3 +++ + nvmf-autoconnect/systemd/nvmf-connect@.service.in | 4 +++- + 2 files changed, 6 insertions(+), 1 deletion(-) + +diff --git a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service +index 33ab8c1f..7036625c 100644 +--- a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service ++++ b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service +@@ -1,6 +1,9 @@ + [Unit] + Description=Auto-connect to subsystems on FC-NVME devices found during boot + ConditionPathExists=/sys/class/fc/fc_udev_device/nvme_discovery ++DefaultDependencies=no ++After=systemd-udevd.service ++Before=local-fs-pre.target + + [Service] + Type=oneshot +diff --git a/nvmf-autoconnect/systemd/nvmf-connect@.service b/nvmf-autoconnect/systemd/nvmf-connect@.service +index 90f774c5..dd245ee6 100644 +--- a/nvmf-autoconnect/systemd/nvmf-connect@.service ++++ b/nvmf-autoconnect/systemd/nvmf-connect@.service +@@ -4,7 +4,9 @@ + + [Unit] + Description=NVMf auto-connect scan upon nvme discovery controller Events +-After=syslog.target ++DefaultDependencies=no ++After=systemd-udevd.service ++Before=local-fs-pre.target + PartOf=nvmf-connect.target + Requires=nvmf-connect.target + +-- +2.31.1 + diff --git a/SOURCES/0018-nvme-fix-rnlpt-to_string-values.patch b/SOURCES/0018-nvme-fix-rnlpt-to_string-values.patch new file mode 100644 index 0000000..9645b13 --- /dev/null +++ b/SOURCES/0018-nvme-fix-rnlpt-to_string-values.patch @@ -0,0 +1,35 @@ +From 00909e8bc7e5a1b7a1129f8e18c60eedca0248f7 Mon Sep 17 00:00:00 2001 +From: Maurizio Lombardi +Date: Mon, 17 Apr 2023 15:39:56 +0200 +Subject: [PATCH] nvme: fix rnlpt to_string() values. + +"Reservation Notification Log Page Type" values do not start +from 0x1 but from 0x0. + +Signed-off-by: Maurizio Lombardi +--- + nvme-print.c | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/nvme-print.c b/nvme-print.c +index 8bd2174f..1ed34572 100644 +--- a/nvme-print.c ++++ b/nvme-print.c +@@ -610,10 +610,10 @@ void nvme_show_lba_status_log(void *lba_status, __u32 size, + static const char *resv_notif_to_string(__u8 type) + { + switch (type) { +- case 0x1: return "Empty Log Page"; +- case 0x2: return "Registration Preempted"; +- case 0x3: return "Reservation Released"; +- case 0x4: return "Reservation Preempted"; ++ case 0x0: return "Empty Log Page"; ++ case 0x1: return "Registration Preempted"; ++ case 0x2: return "Reservation Released"; ++ case 0x3: return "Reservation Preempted"; + default: return "Reserved"; + } + } +-- +2.31.1 + diff --git a/SPECS/nvme-cli.spec b/SPECS/nvme-cli.spec index 0c89a67..01f041a 100644 --- a/SPECS/nvme-cli.spec +++ b/SPECS/nvme-cli.spec @@ -3,7 +3,7 @@ Name: nvme-cli Version: 1.16 -Release: 7%{?dist} +Release: 9%{?dist} Summary: NVMe management command line interface License: GPLv2+ @@ -27,6 +27,8 @@ Patch13: 0013-nvme-cli-Add-support-set-feature-event-in-PEL.patch Patch14: 0014-nvme-cli-Add-support-Telemetry-CRT-in-PEL.patch Patch15: 0015-fix-firmware-log-page-frs-variable-sign.patch Patch16: 0016-fix-file-permissions-nvme-print.c.patch +Patch17: 0017-fabrics-Fix-ordering-for-auto-connect-services.patch +Patch18: 0018-nvme-fix-rnlpt-to_string-values.patch BuildRequires: libuuid-devel BuildRequires: gcc @@ -56,6 +58,8 @@ nvme-cli provides NVM-Express user space tooling for Linux. %patch14 -p1 %patch15 -p1 %patch16 -p1 +%patch17 -p1 +%patch18 -p1 %build @@ -114,6 +118,12 @@ if [ $1 -eq 1 ] || [ $1 -eq 2 ]; then fi %changelog +* Thu Apr 20 2023 Maurizio Lombardi - 1.16-9 +- Fix BZ #2187288 + +* Wed Apr 05 2023 Maurizio Lombardi - 1.16-8 +- Fix BZ #1954185 + * Wed Nov 09 2022 Maurizio Lombardi - 1.16-7 - Do not re-enable the nvmefc-boot-connections service if we are just upgrading the package.