From 809423a5731e4433f3fa08e97ddf152e49cd00bf Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Fri, 13 Nov 2020 18:08:47 +0800
Subject: [PATCH] 95fcoe: don't install if there is no FCoE hostonly devices
When in hostonly mode, 95fcoe module will still be installed even there
is no FCoE hostonly device. So use the new block_is_fcoe helper to check
for hostonly device in hostonly mode, avoid installing unneccessary module.
Signed-off-by: Kairui Song <kasong@redhat.com>
(cherry picked from commit 8c8af8a2cd728e917be8465c79b12149e6877aef)
Resolves: #1899456
---
modules.d/95fcoe-uefi/module-setup.sh | 17 +++++------------
modules.d/95fcoe/module-setup.sh | 11 +++++------
2 files changed, 10 insertions(+), 18 deletions(-)
diff --git a/modules.d/95fcoe-uefi/module-setup.sh b/modules.d/95fcoe-uefi/module-setup.sh
index a464df5a..9e5719df 100755
--- a/modules.d/95fcoe-uefi/module-setup.sh
+++ b/modules.d/95fcoe-uefi/module-setup.sh
@@ -2,22 +2,15 @@
# called by dracut
check() {
- local _fcoe_ctlr
- [[ $hostonly ]] || [[ $mount_needs ]] && {
- for c in /sys/bus/fcoe/devices/ctlr_* ; do
- [ -L $c ] || continue
- _fcoe_ctlr=$c
- done
- [ -z "$_fcoe_ctlr" ] && return 255
+ is_fcoe() {
+ block_is_fcoe $1 || return 1
}
+
[[ $hostonly ]] || [[ $mount_needs ]] && {
+ for_each_host_dev_and_slaves is_fcoe || return 255
[ -d /sys/firmware/efi ] || return 255
- for c in /sys/bus/fcoe/devices/ctlr_* ; do
- [ -L $c ] || continue
- fcoe_ctlr=$c
- done
- [ -z "$fcoe_ctlr" ] && return 255
}
+
require_binaries dcbtool fipvlan lldpad ip readlink || return 1
return 0
}
diff --git a/modules.d/95fcoe/module-setup.sh b/modules.d/95fcoe/module-setup.sh
index c2224ec1..f5df705b 100755
--- a/modules.d/95fcoe/module-setup.sh
+++ b/modules.d/95fcoe/module-setup.sh
@@ -2,13 +2,12 @@
# called by dracut
check() {
- local _fcoe_ctlr
+ is_fcoe() {
+ block_is_fcoe $1 || return 1
+ }
+
[[ $hostonly ]] || [[ $mount_needs ]] && {
- for c in /sys/bus/fcoe/devices/ctlr_* ; do
- [ -L $c ] || continue
- _fcoe_ctlr=$c
- done
- [ -z "$_fcoe_ctlr" ] && return 255
+ for_each_host_dev_and_slaves is_fcoe || return 255
}
require_binaries dcbtool fipvlan lldpad ip readlink fcoemon fcoeadm || return 1