diff --git a/SOURCES/0001-Revert-nvme-Masks-SSTAT-in-sanize-log-output.patch b/SOURCES/0001-Revert-nvme-Masks-SSTAT-in-sanize-log-output.patch new file mode 100644 index 0000000..07902b4 --- /dev/null +++ b/SOURCES/0001-Revert-nvme-Masks-SSTAT-in-sanize-log-output.patch @@ -0,0 +1,35 @@ +From e1afeffcbb78e252bbb0d21d2f4ed0fffeb59105 Mon Sep 17 00:00:00 2001 +From: Maurizio Lombardi +Date: Tue, 23 May 2023 15:08:40 +0200 +Subject: [PATCH] Revert "nvme: Masks SSTAT in sanize-log output" + +The NVME_SANITIZE_SSTAT_STATUS_MASK is used to mask the +3 least significant bits (representing the status of the most recent +sanitize operation) of the SSTAT field. + +The SSTAT field is 16 bits wide and contains other information too, such +as the Global Data Erased bit and the number of completed passes. + +Revert this commit so nvme-cli will print the entire SSTAT field + +This reverts commit 7092ff55c5d9017231a68fa4dbb9a37b42d61d61. +--- + nvme-print.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/nvme-print.c b/nvme-print.c +index c989435d..735ec193 100644 +--- a/nvme-print.c ++++ b/nvme-print.c +@@ -4423,7 +4423,7 @@ void nvme_show_sanitize_log(struct nvme_sanitize_log_page *sanitize, + printf("\n"); + + printf("Sanitize Status (SSTAT) : %#x\n", +- le16_to_cpu(sanitize->sstat) & NVME_SANITIZE_SSTAT_STATUS_MASK); ++ le16_to_cpu(sanitize->sstat)); + if (human) + nvme_show_sanitize_log_sstat(le16_to_cpu(sanitize->sstat)); + +-- +2.39.3 + diff --git a/SOURCES/0002-fabrics-Fix-ordering-for-auto-connect-services.patch b/SOURCES/0002-fabrics-Fix-ordering-for-auto-connect-services.patch new file mode 100644 index 0000000..bcad8af --- /dev/null +++ b/SOURCES/0002-fabrics-Fix-ordering-for-auto-connect-services.patch @@ -0,0 +1,62 @@ +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.in b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in +index 33ab8c1f6..7036625c7 100644 +--- a/nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in ++++ b/nvmf-autoconnect/systemd/nvmefc-boot-connections.service.in +@@ -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.in b/nvmf-autoconnect/systemd/nvmf-connect@.service.in +index 90f774c55..dd245ee6e 100644 +--- a/nvmf-autoconnect/systemd/nvmf-connect@.service.in ++++ b/nvmf-autoconnect/systemd/nvmf-connect@.service.in +@@ -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 + diff --git a/SPECS/nvme-cli.spec b/SPECS/nvme-cli.spec index 04e4c83..de50ece 100644 --- a/SPECS/nvme-cli.spec +++ b/SPECS/nvme-cli.spec @@ -3,13 +3,19 @@ Name: nvme-cli Version: 2.2.1 -Release: 2%{?dist} +Release: 4%{?dist}.alma Summary: NVMe management command line interface License: GPLv2+ URL: https://github.com/linux-nvme/nvme-cli Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz +# Patches was taken from: +# https://gitlab.com/redhat/centos-stream/rpms/nvme-cli/-/blob/6c461b712b5830ab1afbe366cfba238e39ce97c5/0004-Revert-nvme-Masks-SSTAT-in-sanize-log-output.patch +Patch0001: 0001-Revert-nvme-Masks-SSTAT-in-sanize-log-output.patch +# https://github.com/linux-nvme/nvme-cli/commit/ad9f35c0bf8a71c6a4b7586d7553b8e9d171f48e +Patch0002: 0002-fabrics-Fix-ordering-for-auto-connect-services.patch + BuildRequires: meson >= 0.48.0 BuildRequires: gcc gcc-c++ BuildRequires: libuuid-devel @@ -30,6 +36,9 @@ nvme-cli provides NVM-Express user space tooling for Linux. #%%setup -qn %%{name}-%%{commit0} %setup -q +%patch0001 -p1 +%patch0002 -p1 + %build %meson -Dudevrulesdir=%{_udevrulesdir} -Dsystemddir=%{_unitdir} -Ddocs=all -Ddocs-build=true -Dhtmldir=%{_pkgdocdir} %meson_build @@ -87,6 +96,10 @@ if [ $1 -eq 1 ] || [ $1 -eq 2 ]; then fi %changelog +* Thu Aug 03 2023 Eduard Abdullin - 2.1.2-4.alma +- Revert "nvme: Masks SSTAT in sanize-log output" +- fabrics: Fix ordering for auto connect services + * Thu Nov 10 2022 Maurizio Lombardi - 2.1.2-2 - Do not re-enable nvmefc-boot-connections when the package gets updated