]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
change omit_drivers to support regexp expressions
authorHarald Hoyer <harald@redhat.com>
Wed, 22 Feb 2012 15:12:10 +0000 (16:12 +0100)
committerHarald Hoyer <harald@redhat.com>
Wed, 22 Feb 2012 15:14:38 +0000 (16:14 +0100)
dracut-functions.sh
dracut.conf.d/fedora.conf.example
dracut.sh

index 3f3667f48cba04f0d4e794e216c9bd93ba030e1a..95d7cbba22f276acf4fd032856eb3e45eb1accad 100755 (executable)
@@ -1005,7 +1005,11 @@ install_kmod_with_fw() {
         local _kmod=${1##*/}
         _kmod=${_kmod%.ko}
         _kmod=${_kmod/-/_}
-        if strstr " $omit_drivers " " $_kmod " ; then
+        if [[ "$_kmod" =~ $omit_drivers ]]; then
+            dinfo "Omitting driver $_kmod"
+            return 1
+        fi
+        if [[ "${1##*/lib/modules/$kernel/}" =~ $omit_drivers ]]; then
             dinfo "Omitting driver $_kmod"
             return 1
         fi
@@ -1141,12 +1145,17 @@ instmods() {
                 ;;
             --*) _mpargs+=" $_mod" ;;
             i2o_scsi) return ;; # Do not load this diagnostic-only module
-            *)  _mod=${_mod##*/}
-
+            *)
                 # if we are already installed, skip this module and go on
                 # to the next one.
                 [[ -f $initdir/$1 ]] && return
 
+                if [[ $omit_drivers ]] && [[ "$1" =~ $omit_drivers ]]; then
+                    dinfo "Omitting driver ${_mod##$srcmods}"
+                    return
+                fi
+
+                _mod=${_mod##*/}
                 # If we are building a host-specific initramfs and this
                 # module is not already loaded, move on to the next one.
                 [[ $hostonly ]] && ! grep -qe "\<${_mod//-/_}\>" /proc/modules \
index 539e2639d6edf8bec3f807f90ce51ba66bb43d43..efec77eb07852f621932382c571611f642f99b2d 100644 (file)
@@ -4,7 +4,7 @@
 i18n_vars="/etc/sysconfig/keyboard:KEYTABLE-KEYMAP /etc/sysconfig/i18n:SYSFONT-FONT,FONTACM-FONT_MAP,FONT_UNIMAP"
 add_dracutmodules+=" rpmversion "
 omit_dracutmodules+=" dash "
-omit_drivers+=" ocfs2 "
+omit_drivers+=" .*/fs/ocfs/.* "
 stdloglvl=3
 realinitpath="/usr/lib/systemd/systemd"
 install_items+=" vi /etc/virc ps grep cat rm openvt "
index 8208c926ef45629edd6eabba2472c0f0f733d941..38543beb6997538ebe000871d04c63dd7bfee821 100755 (executable)
--- a/dracut.sh
+++ b/dracut.sh
@@ -477,12 +477,12 @@ if (( ${#omit_drivers_l[@]} )); then
 fi
 omit_drivers=${omit_drivers/-/_}
 
-unset omit_drivers_corrected
+omit_drivers_corrected=""
 for d in $omit_drivers; do
     strstr " $drivers $add_drivers " " $d " && continue
-    omit_drivers_corrected+=" $d "
+    omit_drivers_corrected+="$d|"
 done
-omit_drivers=$omit_drivers_corrected
+omit_drivers="${omit_drivers_corrected%|}"
 unset omit_drivers_corrected