[PATCH 09/33] 90multipath: Load device_handler modules early during boot

Thomas Renninger
2014-11-20T14:56:44Z

From: Hannes Reinecke <hare-l3A5Bk7waGM@public.gmane.org>

The device handler modules need to be loaded early during boot
to avoid I/O errors being printed to the system log.

References: bnc#871617

Signed-off-by: Hannes Reinecke <hare-l3A5Bk7waGM@public.gmane.org>
Signed-off-by: Thomas Renninger <trenn-l3A5Bk7waGM@public.gmane.org>
---
modules.d/90multipath/module-setup.sh | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh
index 7a60b2e..bbee5d9 100755
--- a/modules.d/90multipath/module-setup.sh
+++ b/modules.d/90multipath/module-setup.sh
@@ -28,6 +28,15 @@ depends() {
}

# called by dracut
+cmdline() {
+ for m in scsi_dh_alua scsi_dh_emc scsi_dh_rdac ; do
+ if module_is_host_only $m ; then
+ printf 'rd.driver.pre=%s ' "$m"
+ fi
+ done
+}
+
+# called by dracut
installkernel() {
local _ret
local _arch=$(uname -m)
@@ -89,6 +98,11 @@ install() {
inst_libdir_file "libmultipath*" "multipath/*"
inst_libdir_file 'libgcc_s.so*'

+ if [[ $hostonly_cmdline ]] ; then
+ local _conf=$(cmdline)
+ [[ $_conf ]] && echo "$_conf" >> "${initdir}/etc/cmdline.d/90multipath.conf"
+ fi
+
if dracut_module_included "systemd"; then
inst_multiple \
$systemdsystemunitdir/multipathd.service
--
1.8.5.2