36 lines
1.4 KiB
Diff
36 lines
1.4 KiB
Diff
From 3244bf59816096377edee6f8937f16838dc1a709 Mon Sep 17 00:00:00 2001
|
|
From: Hannes Reinecke <hare@suse.de>
|
|
Date: Thu, 11 Dec 2014 15:46:06 +0100
|
|
Subject: [PATCH] Do not call 'lvm' for non-LVM device-mapper devices
|
|
|
|
If a device-mapper device is not created by LVM it's pointless
|
|
to call any 'lvm' programs got extract details; they'll be
|
|
failing anyway. So check the UUID before calling 'lvm'.
|
|
This speeds up initrd creation and avoids I/O errors on
|
|
multipath devices.
|
|
|
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
Signed-off-by: Thomas Renninger <trenn@suse.de>
|
|
---
|
|
dracut-functions.sh | 4 +++-
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/dracut-functions.sh b/dracut-functions.sh
|
|
index 17a71f0..edd8ea9 100755
|
|
--- a/dracut-functions.sh
|
|
+++ b/dracut-functions.sh
|
|
@@ -698,10 +698,12 @@ for_each_host_dev_and_slaves()
|
|
# but you cannot create the logical volume without the volume group.
|
|
# And the volume group might be bigger than the devices the LV needs.
|
|
check_vol_slaves() {
|
|
- local _lv _vg _pv
|
|
+ local _lv _vg _pv _dm
|
|
for i in /dev/mapper/*; do
|
|
[[ $i == /dev/mapper/control ]] && continue
|
|
_lv=$(get_maj_min $i)
|
|
+ _dm=/sys/dev/block/$_lv/dm
|
|
+ [[ -f $_dm/uuid && $(<$_dm/uuid) =~ LVM-* ]] || continue
|
|
if [[ $_lv = $2 ]]; then
|
|
_vg=$(lvm lvs --noheadings -o vg_name $i 2>/dev/null)
|
|
# strip space
|