forked from pool/s390-tools
b12140c3aa
- Added the following two patches (bsc#1071166): s390-tools-sles15-zdev-Enable-running-chzdev-from-unknown-root-devices.patch s390-tools-sles15-zdev-Fix-zdev-dracut-module-aborting-on-unknown-root.patch OBS-URL: https://build.opensuse.org/request/show/555141 OBS-URL: https://build.opensuse.org/package/show/Base:System/s390-tools?expand=0&rev=41
55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
From 0348a8443e5f15636f86ef2533a7d6e8fa5d936d Mon Sep 17 00:00:00 2001
|
|
From: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
|
|
Date: Thu, 7 Dec 2017 17:21:11 +0100
|
|
Subject: [PATCH 4/4] zdev: Fix zdev dracut module aborting on unknown root
|
|
device
|
|
|
|
Running dracut when the root device is not known to zdev (for example
|
|
because it is located on a virtio block device) will cause the zdev
|
|
dracut module to incorrectly return an error in the installkernel()
|
|
function. As a result dracut aborts with an error.
|
|
|
|
Fix this by ensuring that the non-zero exit code resulting from lszdev
|
|
not being able to determine the root device is not passed on to the
|
|
calling function. Also remove unnecessary error output in this case
|
|
by leaving the install() function early when the root device is not
|
|
known to zdev.
|
|
|
|
Signed-off-by: Peter Oberparleiter <oberpar@linux.vnet.ibm.com>
|
|
Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com>
|
|
---
|
|
zdev/dracut/95zdev/module-setup.sh | 12 ++++++++++--
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/zdev/dracut/95zdev/module-setup.sh b/zdev/dracut/95zdev/module-setup.sh
|
|
index 7c67cd7..4c13a65 100644
|
|
--- a/zdev/dracut/95zdev/module-setup.sh
|
|
+++ b/zdev/dracut/95zdev/module-setup.sh
|
|
@@ -29,13 +29,21 @@ depends() {
|
|
}
|
|
|
|
installkernel() {
|
|
- local _modules=$(lszdev --by-path / --columns MODULES --no-headings)
|
|
+ local _modules=$(lszdev --by-path / --columns MODULES --no-headings 2>/dev/null)
|
|
|
|
+ [ -z "$_modules" ] && return 0
|
|
[ ! -z "$_modules" ] && instmods $_modules
|
|
}
|
|
|
|
install() {
|
|
- local _tempfile=$(mktemp --tmpdir dracut-zdev.XXXXXX)
|
|
+ local _tempfile
|
|
+
|
|
+ # Exit early if root device type is unknown
|
|
+ if ! lszdev --by-path / >/dev/null 2>&1 ; then
|
|
+ return 0
|
|
+ fi
|
|
+
|
|
+ _tempfile=$(mktemp --tmpdir dracut-zdev.XXXXXX)
|
|
|
|
if chzdev --export - --persistent --by-path / >/dev/null 2>&1 ; then
|
|
# Use persistent configuration
|
|
--
|
|
2.13.6
|
|
|