You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
3.4 KiB
129 lines
3.4 KiB
From 6ef3173e86c2be99b504f7c7a789dea5c0072f64 Mon Sep 17 00:00:00 2001 |
|
From: Harald Hoyer <harald@redhat.com> |
|
Date: Mon, 10 Jul 2017 13:28:40 +0200 |
|
Subject: [PATCH] add 90multipath-hostonly module |
|
|
|
hardcoding the wwid of the drives in the initramfs causes problems |
|
when the drives are cloned to a system with the same hardware, but |
|
different disk wwid's |
|
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=1457311 |
|
|
|
Cherry-picked from: 5ce7cc7337a4c769b223152c083914f2052aa348 |
|
Resolves: #1457311 |
|
--- |
|
modules.d/90multipath-hostonly/module-setup.sh | 53 ++++++++++++++++++++++++++ |
|
modules.d/90multipath/module-setup.sh | 26 ------------- |
|
2 files changed, 53 insertions(+), 26 deletions(-) |
|
create mode 100755 modules.d/90multipath-hostonly/module-setup.sh |
|
|
|
diff --git a/modules.d/90multipath-hostonly/module-setup.sh b/modules.d/90multipath-hostonly/module-setup.sh |
|
new file mode 100755 |
|
index 00000000..88839033 |
|
--- /dev/null |
|
+++ b/modules.d/90multipath-hostonly/module-setup.sh |
|
@@ -0,0 +1,53 @@ |
|
+#!/bin/bash |
|
+ |
|
+# called by dracut |
|
+check() { |
|
+ return 255 |
|
+} |
|
+ |
|
+# called by dracut |
|
+depends() { |
|
+ echo multipath |
|
+ return 0 |
|
+} |
|
+ |
|
+# called by dracut |
|
+install() { |
|
+ local _f _allow |
|
+ |
|
+ is_mpath() { |
|
+ local _dev=$1 |
|
+ [ -e /sys/dev/block/$_dev/dm/uuid ] || return 1 |
|
+ [[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0 |
|
+ return 1 |
|
+ } |
|
+ |
|
+ majmin_to_mpath_dev() { |
|
+ local _dev |
|
+ for i in /dev/mapper/*; do |
|
+ [[ $i == /dev/mapper/control ]] && continue |
|
+ _dev=$(get_maj_min $i) |
|
+ if [ "$_dev" = "$1" ]; then |
|
+ echo $i |
|
+ return |
|
+ fi |
|
+ done |
|
+ } |
|
+ |
|
+ add_hostonly_mpath_conf() { |
|
+ is_mpath $1 && { |
|
+ local _dev |
|
+ |
|
+ _dev=$(majmin_to_mpath_dev $1) |
|
+ [ -z "$_dev" ] && return |
|
+ strstr "$_allow" "$_dev" && return |
|
+ _allow="$_allow --allow $_dev" |
|
+ } |
|
+ } |
|
+ |
|
+ [[ $hostonly ]] && { |
|
+ for_each_host_dev_and_slaves_all add_hostonly_mpath_conf |
|
+ [ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf |
|
+ } |
|
+} |
|
+ |
|
diff --git a/modules.d/90multipath/module-setup.sh b/modules.d/90multipath/module-setup.sh |
|
index 3983b7b7..232ddcd8 100755 |
|
--- a/modules.d/90multipath/module-setup.sh |
|
+++ b/modules.d/90multipath/module-setup.sh |
|
@@ -9,17 +9,6 @@ is_mpath() { |
|
return 1 |
|
} |
|
|
|
-majmin_to_mpath_dev() { |
|
- local _dev |
|
- for i in /dev/mapper/*; do |
|
- [[ $i == /dev/mapper/control ]] && continue |
|
- _dev=$(get_maj_min $i) |
|
- if [ "$_dev" = "$1" ]; then |
|
- echo $i |
|
- return |
|
- fi |
|
- done |
|
-} |
|
|
|
check() { |
|
local _rootdev |
|
@@ -81,16 +70,6 @@ installkernel() { |
|
|
|
install() { |
|
local _f _allow |
|
- add_hostonly_mpath_conf() { |
|
- is_mpath $1 && { |
|
- local _dev |
|
- |
|
- _dev=$(majmin_to_mpath_dev $1) |
|
- [ -z "$_dev" ] && return |
|
- strstr "$_allow" "$_dev" && return |
|
- _allow="$_allow --allow $_dev" |
|
- } |
|
- } |
|
|
|
inst_multiple -o \ |
|
dmsetup \ |
|
@@ -105,11 +84,6 @@ install() { |
|
/etc/multipath.conf \ |
|
/etc/multipath/* |
|
|
|
- [[ $hostonly ]] && { |
|
- for_each_host_dev_and_slaves_all add_hostonly_mpath_conf |
|
- [ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf |
|
- } |
|
- |
|
inst $(command -v partx) /sbin/partx |
|
|
|
inst_libdir_file "libmultipath*" "multipath/*"
|
|
|