commit:     d30bfb2e0028d37031b0a0c129cce7ced20d2cef
Author:     Fernando Reyes (likewhoa) <design <AT> missionaccomplish <DOT> com>
AuthorDate: Mon Aug  4 01:23:02 2014 +0000
Commit:     Richard Farina <zerochaos <AT> gentoo <DOT> org>
CommitDate: Wed Aug  6 22:21:03 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/genkernel.git;a=commit;h=d30bfb2e

Fixed a bug which prevented aufs.modules from functioning properly
and changed the variables names to reflect the actual logic.

---
 defaults/initrd.defaults |  1 +
 defaults/initrd.scripts  | 17 ++++++++---------
 defaults/linuxrc         | 22 +++++++++++++---------
 3 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults
index 94b45cc..818e3b1 100755
--- a/defaults/initrd.defaults
+++ b/defaults/initrd.defaults
@@ -72,6 +72,7 @@ CDROOT_MARKER='/livecd'
 # AUFS variables
 aufs=0
 aufs_union_file=/livecd.aufs
+aufs_modules_dir=mnt/cdrom
 
 LOOPS='/livecd.loop /zisofs /livecd.squashfs /image.squashfs /livecd.gcloop'
 

diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
index 5a01986..7d9497d 100644
--- a/defaults/initrd.scripts
+++ b/defaults/initrd.scripts
@@ -297,12 +297,12 @@ union_insert_dir() {
 union_insert_modules() {
         local module
 
-        for module in "$NEW_ROOT/$1/modules/"*.mo; do
-                union_mod "$module" || bad_msg "Unable to load module: 
'$module'"
+        for module in "$1/modules/"*.mo; do
+                union_mod "$module" || bad_msg "Unable to insert module: 
'$module'"
         done
 
-        for module in "$NEW_ROOT/$1/modules/"*.lzm; do
-                union_mod "$module" lzm || bad_msg "Unable to load module: 
'$module'"
+        for module in "$1/modules/"*.lzm; do
+                union_mod "$module" || bad_msg "Unable to insert module: 
'$module'"
         done
 }
 
@@ -315,13 +315,12 @@ union_mod() {
         mod=${1##*/}
         mod=${mod%.*}
 
-        mkdir -p "$aufs_memory/modules/$mod" || return
-
-        if [ lzm = "$2" ]; then
-                 mount -o loop,ro "$1" "$aufs_memory/modules/$mod"
+        if [ ! -d "$aufs_union"/mnt/"$mod" ]; then
+                mkdir -p "$aufs_union"/mnt/modules/"$mod" || return
         fi
 
-        union_insert_dir "$aufs_union" "$aufs_memory/modules/$mod"
+        mount -o loop,ro "$1" "$aufs_union"/mnt/modules/"$mod"
+        union_insert_dir "$aufs_union" "$aufs_union"/mnt/modules/"$mod"
 }
 
 # Implements RC_NO_UMOUNTS variable into $CHROOT/etc/rc.conf for a cleaner 
shutdown process

diff --git a/defaults/linuxrc b/defaults/linuxrc
index 3098866..951f5e1 100644
--- a/defaults/linuxrc
+++ b/defaults/linuxrc
@@ -265,7 +265,7 @@ do
                ;;
                # Allow user to specify the modules location
                aufs.modules\=*)
-                       aufs_modules_dev=${x#*=}
+                       aufs_modules_dir=${x#*=}
                         aufs_modules=1
                ;;
                unionfs)
@@ -786,16 +786,20 @@ distfiles       /usr/portage/distfiles          tmpfs   
defaults        0 0
 FSTAB
                 fi
 
-                # When aufs.modules= is used
-                if [ 1 = "$aufs_modules" ]; then
-                        warn_msg "Adding all modules in 
$aufs_modules_dev/modules/"
+                # When aufs.modules= is used or $CDROOT_PATH/modules
+                # directory is available
+                if [[ 1 = "$aufs_modules" || -d $CDROOT_PATH/modules ]]; then
+                        warn_msg "Adding all modules in 
$aufs_modules_dir/modules/"
 
-                        if [ -z "$aufs_modules_dev" ]; then
+                        if [ mnt/cdrom = "$aufs_modules_dir" ]; then
                                union_insert_modules "$CDROOT_PATH"
-                       else
-                               mkdir "$NEW_ROOT/mnt/modulesd"
-                               mount "$aufs_modules_dev" 
"$NEW_ROOT/mnt/modulesd"
-                               union_insert_modules "$NEW_ROOT/mnt/modulesd"
+                        elif [ ! -b "$aufs_modules_dir" ]; then
+                                bad_msg "$aufs_modules_dir is not a valid 
block device"
+                                bad_msg "aborting modules insert into 
$aufs_union"
+                        else
+                                mkdir /mnt/modules
+                               mount "$aufs_modules_dir" /mnt/modules
+                               union_insert_modules /mnt/modules
                         fi
                 fi
 

Reply via email to