1 |
commit: a5f4045080278ac43d13ff79bfbad388055867c5 |
2 |
Author: Fernando Reyes (likewhoa) <design <AT> missionaccomplish <DOT> com> |
3 |
AuthorDate: Mon Aug 4 01:23:02 2014 +0000 |
4 |
Commit: Richard Farina <zerochaos <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Apr 29 17:33:04 2015 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=a5f40450 |
7 |
|
8 |
Fixed a bug which prevented aufs.modules from functioning properly |
9 |
and changed the variables names to reflect the actual logic. |
10 |
|
11 |
defaults/initrd.defaults | 1 + |
12 |
defaults/initrd.scripts | 17 ++++++++--------- |
13 |
defaults/linuxrc | 22 +++++++++++++--------- |
14 |
3 files changed, 22 insertions(+), 18 deletions(-) |
15 |
|
16 |
diff --git a/defaults/initrd.defaults b/defaults/initrd.defaults |
17 |
index 782fd14..f2cb42a 100755 |
18 |
--- a/defaults/initrd.defaults |
19 |
+++ b/defaults/initrd.defaults |
20 |
@@ -72,6 +72,7 @@ CDROOT_MARKER='/livecd' |
21 |
# AUFS variables |
22 |
aufs=0 |
23 |
aufs_union_file=/livecd.aufs |
24 |
+aufs_modules_dir=mnt/cdrom |
25 |
|
26 |
LOOPS='/livecd.loop /zisofs /livecd.squashfs /image.squashfs /livecd.gcloop' |
27 |
|
28 |
|
29 |
diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts |
30 |
index 5c7703b..d168b94 100644 |
31 |
--- a/defaults/initrd.scripts |
32 |
+++ b/defaults/initrd.scripts |
33 |
@@ -297,12 +297,12 @@ union_insert_dir() { |
34 |
union_insert_modules() { |
35 |
local module |
36 |
|
37 |
- for module in "$NEW_ROOT/$1/modules/"*.mo; do |
38 |
- union_mod "$module" || bad_msg "Unable to load module: '$module'" |
39 |
+ for module in "$1/modules/"*.mo; do |
40 |
+ union_mod "$module" || bad_msg "Unable to insert module: '$module'" |
41 |
done |
42 |
|
43 |
- for module in "$NEW_ROOT/$1/modules/"*.lzm; do |
44 |
- union_mod "$module" lzm || bad_msg "Unable to load module: '$module'" |
45 |
+ for module in "$1/modules/"*.lzm; do |
46 |
+ union_mod "$module" || bad_msg "Unable to insert module: '$module'" |
47 |
done |
48 |
} |
49 |
|
50 |
@@ -315,13 +315,12 @@ union_mod() { |
51 |
mod=${1##*/} |
52 |
mod=${mod%.*} |
53 |
|
54 |
- mkdir -p "$aufs_memory/modules/$mod" || return |
55 |
- |
56 |
- if [ lzm = "$2" ]; then |
57 |
- mount -o loop,ro "$1" "$aufs_memory/modules/$mod" |
58 |
+ if [ ! -d "$aufs_union"/mnt/"$mod" ]; then |
59 |
+ mkdir -p "$aufs_union"/mnt/modules/"$mod" || return |
60 |
fi |
61 |
|
62 |
- union_insert_dir "$aufs_union" "$aufs_memory/modules/$mod" |
63 |
+ mount -o loop,ro "$1" "$aufs_union"/mnt/modules/"$mod" |
64 |
+ union_insert_dir "$aufs_union" "$aufs_union"/mnt/modules/"$mod" |
65 |
} |
66 |
|
67 |
# Implements RC_NO_UMOUNTS variable into $CHROOT/etc/rc.conf for a cleaner shutdown process |
68 |
|
69 |
diff --git a/defaults/linuxrc b/defaults/linuxrc |
70 |
index 3098866..951f5e1 100644 |
71 |
--- a/defaults/linuxrc |
72 |
+++ b/defaults/linuxrc |
73 |
@@ -265,7 +265,7 @@ do |
74 |
;; |
75 |
# Allow user to specify the modules location |
76 |
aufs.modules\=*) |
77 |
- aufs_modules_dev=${x#*=} |
78 |
+ aufs_modules_dir=${x#*=} |
79 |
aufs_modules=1 |
80 |
;; |
81 |
unionfs) |
82 |
@@ -786,16 +786,20 @@ distfiles /usr/portage/distfiles tmpfs defaults 0 0 |
83 |
FSTAB |
84 |
fi |
85 |
|
86 |
- # When aufs.modules= is used |
87 |
- if [ 1 = "$aufs_modules" ]; then |
88 |
- warn_msg "Adding all modules in $aufs_modules_dev/modules/" |
89 |
+ # When aufs.modules= is used or $CDROOT_PATH/modules |
90 |
+ # directory is available |
91 |
+ if [[ 1 = "$aufs_modules" || -d $CDROOT_PATH/modules ]]; then |
92 |
+ warn_msg "Adding all modules in $aufs_modules_dir/modules/" |
93 |
|
94 |
- if [ -z "$aufs_modules_dev" ]; then |
95 |
+ if [ mnt/cdrom = "$aufs_modules_dir" ]; then |
96 |
union_insert_modules "$CDROOT_PATH" |
97 |
- else |
98 |
- mkdir "$NEW_ROOT/mnt/modulesd" |
99 |
- mount "$aufs_modules_dev" "$NEW_ROOT/mnt/modulesd" |
100 |
- union_insert_modules "$NEW_ROOT/mnt/modulesd" |
101 |
+ elif [ ! -b "$aufs_modules_dir" ]; then |
102 |
+ bad_msg "$aufs_modules_dir is not a valid block device" |
103 |
+ bad_msg "aborting modules insert into $aufs_union" |
104 |
+ else |
105 |
+ mkdir /mnt/modules |
106 |
+ mount "$aufs_modules_dir" /mnt/modules |
107 |
+ union_insert_modules /mnt/modules |
108 |
fi |
109 |
fi |