Sophie

Sophie

distrib > Mageia > 3 > i586 > media > core-release-src > by-pkgid > 5c1bb304a26349fad0d8eaf2d0262d83 > files > 10

dracut-025-8.mga3.src.rpm

From 07e9053d6a69f8c7bbedac04ea2e0c4fb59aefc8 Mon Sep 17 00:00:00 2001
From: Colin Guthrie <colin@mageia.org>
Date: Thu, 23 Feb 2012 11:53:37 +0000
Subject: [PATCH 502/511] dm/md: Only include UUIDs once in the command line.

This shouldn't really cause any problems, but it's nice to be neat.

Also make the lvm check more efficient when running in kernel_only mode.
---
 modules.d/90dmraid/module-setup.sh | 7 +++++--
 modules.d/90lvm/module-setup.sh    | 6 +++---
 modules.d/90mdraid/module-setup.sh | 7 +++++--
 3 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/modules.d/90dmraid/module-setup.sh b/modules.d/90dmraid/module-setup.sh
index eb949dc..c3bddb7 100755
--- a/modules.d/90dmraid/module-setup.sh
+++ b/modules.d/90dmraid/module-setup.sh
@@ -3,7 +3,7 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 check() {
-    local _rootdev
+    local _rootdev _activated
     # if we don't have dmraid installed on the host system, no point
     # in trying to support it in the initramfs.
     type -P dmraid >/dev/null || return 1
@@ -32,7 +32,10 @@ check() {
 
         [[ ${DM_NAME} ]] || return 1
         if ! [[ $kernel_only ]]; then
-            echo " rd.dm.uuid=${DM_NAME} " >> "${initdir}/etc/cmdline.d/90dmraid.conf"
+            if ! strstr " ${_activated[*]} " " ${DM_NAME} "; then
+                echo " rd.dm.uuid=${DM_NAME} " >> "${initdir}/etc/cmdline.d/90dmraid.conf"
+                push _activated "${DM_NAME}"
+            fi
         fi
         return 0
     }
diff --git a/modules.d/90lvm/module-setup.sh b/modules.d/90lvm/module-setup.sh
index cefd3e9..a537b1a 100755
--- a/modules.d/90lvm/module-setup.sh
+++ b/modules.d/90lvm/module-setup.sh
@@ -12,11 +12,11 @@ check() {
         eval $(udevadm info --query=property --name=/dev/block/$1|egrep '(DM_VG_NAME|DM_LV_NAME|DM_UDEV_DISABLE_DISK_RULES_FLAG)=')
         [[ "$DM_UDEV_DISABLE_DISK_RULES_FLAG" = "1" ]] && return 1
         [[ ${DM_VG_NAME} ]] && [[ ${DM_LV_NAME} ]] || return 1
-        if ! strstr " ${_activated[*]} " " ${DM_VG_NAME}/${DM_LV_NAME} "; then
-            if ! [[ $kernel_only ]]; then
+        if ! [[ $kernel_only ]]; then
+            if ! strstr " ${_activated[*]} " " ${DM_VG_NAME}/${DM_LV_NAME} "; then
                 echo " rd.lvm.lv=${DM_VG_NAME}/${DM_LV_NAME} " >> "${initdir}/etc/cmdline.d/90lvm.conf"
+                push _activated "${DM_VG_NAME}/${DM_LV_NAME}"
             fi
-            push _activated "${DM_VG_NAME}/${DM_LV_NAME}"
         fi
         return 0
     }
diff --git a/modules.d/90mdraid/module-setup.sh b/modules.d/90mdraid/module-setup.sh
index 3b5620c..116b822 100755
--- a/modules.d/90mdraid/module-setup.sh
+++ b/modules.d/90mdraid/module-setup.sh
@@ -3,7 +3,7 @@
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
 check() {
-    local _rootdev
+    local _rootdev _activated
     # No mdadm?  No mdraid support.
     type -P mdadm >/dev/null || return 1
 
@@ -21,7 +21,10 @@ check() {
 
         [[ ${MD_UUID} ]] || return 1
         if ! [[ $kernel_only ]]; then
-            echo " rd.md.uuid=${MD_UUID} " >> "${initdir}/etc/cmdline.d/90mdraid.conf"
+            if ! strstr " ${_activated[*]} " " ${MD_UUID} "; then
+                echo " rd.md.uuid=${MD_UUID} " >> "${initdir}/etc/cmdline.d/90mdraid.conf"
+                push _activated "${MD_UUID}"
+            fi
         fi
         return 0
     }
-- 
1.8.1