From 06f213609e3b1635fe0bceb074e99ea4b5c9290c Mon Sep 17 00:00:00 2001 From: wang--ge Date: Mon, 30 Oct 2023 10:49:54 +0800 Subject: [PATCH] fix upgrade error --- kvdo.spec | 54 ++++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 14 deletions(-) diff --git a/kvdo.spec b/kvdo.spec index be0f034..a2b2411 100644 --- a/kvdo.spec +++ b/kvdo.spec @@ -1,5 +1,5 @@ #This spec is obtained from source code(kvdo-6.2.2.24.tar.gz) -%define spec_release 8 +%define spec_release 9 %define kmod_name kmod-kvdo %define kmod_driver_version 6.2.2.24 %define kmod_rpm_release %{spec_release} @@ -36,21 +36,44 @@ block-level deduplication, compression, and thin provisioning. This package provides the kernel modules for VDO. %post -set -x -/usr/sbin/dkms --rpm_safe_upgrade add -m %{kmod_name} -v %{version}-%{kmod_rpm_release} -/usr/sbin/dkms --rpm_safe_upgrade build -m %{kmod_name} -v %{version}-%{kmod_rpm_release} -/usr/sbin/dkms --rpm_safe_upgrade install -m %{kmod_name} -v %{version}-%{kmod_rpm_release} +case "$1" in + 1) + set -x + /usr/sbin/dkms --rpm_safe_upgrade add -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + /usr/sbin/dkms --rpm_safe_upgrade build -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + /usr/sbin/dkms --rpm_safe_upgrade install -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + ;; + 2) + set -x + /usr/sbin/dkms --rpm_safe_upgrade uninstall -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + /usr/sbin/dkms --rpm_safe_upgrade remove -m %{kmod_name} -v %{version}-%{kmod_rpm_release} --all + /usr/sbin/dkms --rpm_safe_upgrade add -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + /usr/sbin/dkms --rpm_safe_upgrade build -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + /usr/sbin/dkms --rpm_safe_upgrade install -m %{kmod_name} -v %{version}-%{kmod_rpm_release} + ;; +esac %preun -# Check whether kvdo or uds is loaded, and if so attempt to remove it. A -# failure here means there is still something using the module, which should be -# cleared up before attempting to remove again. -for module in kvdo uds; do - if grep -q "^${module}" /proc/modules; then - modprobe -r ${module} - fi -done -/usr/sbin/dkms --rpm_safe_upgrade remove -m %{kmod_name} -v %{version}-%{kmod_rpm_release} --all || : +case "$1" in + 0) + # Check whether kvdo or uds is loaded, and if so attempt to remove it. A + # failure here means there is still something using the module, which should be + # cleared up before attempting to remove again. + for module in kvdo uds; do + if grep -q "^${module}" /proc/modules; then + modprobe -r ${module} + fi + done + /usr/sbin/dkms --rpm_safe_upgrade remove -m %{kmod_name} -v %{version}-%{kmod_rpm_release} --all || : + ;; + 1) + for module in kvdo uds; do + if grep -q "^${module}" /proc/modules; then + modprobe -r ${module} + fi + done + ;; +esac %prep %autosetup -n kvdo-%{kmod_driver_version} -p1 @@ -86,6 +109,9 @@ rm -rf $RPM_BUILD_ROOT %{_usr}/src/%{kmod_name}-%{version}-%{kmod_rpm_release}/* %changelog +* Fri Oct 27 2023 Ge Wang - 6.2.2.24-9 +- Fix upgrade error due to previous version has already installed modules + * Sat Mar 26 2022 baizhonggui - 6.2.2.24-8 - To fix post error, update kmod_kernel_version to latest version: 4.19.90-2203.4.0.0141.oe1 -- Gitee