Search
j0ke.net Open Build Service
>
Projects
>
internetx
:
kiwi
:
Appliance
>
dracut
> 0112-dracut-functions.sh-catch-all-lvm-slaves.patch
Sign Up
|
Log In
Username
Password
Cancel
Overview
Repositories
Revisions
Requests
Users
Advanced
Attributes
Meta
File 0112-dracut-functions.sh-catch-all-lvm-slaves.patch of Package dracut
From 8936bdf887264f23d6491aa6f62c5b0afe55c6c9 Mon Sep 17 00:00:00 2001 From: Harald Hoyer <harald@redhat.com> Date: Tue, 9 Aug 2016 15:26:04 +0200 Subject: [PATCH] dracut-functions.sh: catch all lvm slaves add check_vol_slaves_all to be used in check_block_and_slaves_all otherwise only the first lvm VG member would be processed (cherry picked from commit 7a7b8c174023886b015bd484372839aecf63f324) --- dracut-functions.sh | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/dracut-functions.sh b/dracut-functions.sh index 4496bfe6..249d8fb4 100755 --- a/dracut-functions.sh +++ b/dracut-functions.sh @@ -507,7 +507,7 @@ check_block_and_slaves_all() { if ! lvm_internal_dev $2 && "$1" $2; then _ret=0 fi - check_vol_slaves "$@" && return 0 + check_vol_slaves_all "$@" && return 0 if [[ -f /sys/dev/block/$2/../dev ]]; then check_block_and_slaves_all $1 $(<"/sys/dev/block/$2/../dev") && _ret=0 fi @@ -580,6 +580,29 @@ check_vol_slaves() { return 1 } +check_vol_slaves_all() { + local _lv _vg _pv + for i in /dev/mapper/*; do + [[ $i == /dev/mapper/control ]] && continue + _lv=$(get_maj_min $i) + if [[ $_lv = $2 ]]; then + _vg=$(lvm lvs --noheadings -o vg_name $i 2>/dev/null) + # strip space + _vg="${_vg//[[:space:]]/}" + if [[ $_vg ]]; then + for _pv in $(lvm vgs --noheadings -o pv_name "$_vg" 2>/dev/null) + do + check_block_and_slaves_all $1 $(get_maj_min $_pv) + done + return 0 + fi + fi + done + return 1 +} + + + # fs_get_option <filesystem options> <search for option> # search for a specific option in a bunch of filesystem options # and return the value