Gentoo Archives: gentoo-commits

From: Richard Farina <zerochaos@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/genkernel:aufs commit in: defaults/
Date: Wed, 29 Apr 2015 19:04:14
Message-Id: 1430328705.d8f76f80288f19c0d2d90e9c4999879ad0c61d1e.zerochaos@gentoo
1 commit: d8f76f80288f19c0d2d90e9c4999879ad0c61d1e
2 Author: Fernando Reyes (likewhoa) <design <AT> missionaccomplish <DOT> com>
3 AuthorDate: Fri May 30 02:02:30 2014 +0000
4 Commit: Richard Farina <zerochaos <AT> gentoo <DOT> org>
5 CommitDate: Wed Apr 29 17:31:45 2015 +0000
6 URL: https://gitweb.gentoo.org/proj/genkernel.git/commit/?id=d8f76f80
7
8 Restructure the setup_aufs function, it had redundant code and moved
9 the call to it further down the pipe.
10
11 defaults/initrd.scripts | 181 +++++++++++++++++++++++-------------------------
12 defaults/linuxrc | 2 +-
13 2 files changed, 89 insertions(+), 94 deletions(-)
14
15 diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts
16 index a9ec5ab..14800e4 100644
17 --- a/defaults/initrd.scripts
18 +++ b/defaults/initrd.scripts
19 @@ -302,115 +302,110 @@ create_changefs() {
20 }
21
22 setup_aufs() {
23 - if [ "${USE_AUFS_NORMAL}" -eq '1' ]
24 + # Directory used for rw changes in union mount filesystem
25 + UNION=/union
26 + MEMORY=/memory
27 + # Mountpoint for the changesdev
28 + CHANGESMNT=${NEW_ROOT}/mnt/changesdev
29 + if [ -z "$UID" ]
30 then
31 - # Directory used for rw changes in union mount filesystem
32 - UNION=/union
33 - MEMORY=/memory
34 - # Mountpoint for the changesdev
35 - CHANGESMNT=${NEW_ROOT}/mnt/changesdev
36 - if [ -z "$UID" ]
37 - then
38 - CHANGES=${MEMORY}/aufs_changes/default
39 - else
40 - CHANGES=${MEMORY}/aufs_changes/${UID}
41 - fi
42 + CHANGES=${MEMORY}/aufs_changes/default
43 + else
44 + CHANGES=${MEMORY}/aufs_changes/${UID}
45 + fi
46
47 - mkdir -p ${MEMORY}
48 - mkdir -p ${UNION}
49 - mkdir -p ${CHANGESMNT}
50 - for i in dev mnt ${CDROOT_PATH} mnt/livecd mnt/key tmp tmp/.initrd mnt/gentoo sys
51 - do
52 - mkdir -p "${NEW_ROOT}/${i}"
53 - chmod 755 "${NEW_ROOT}/${i}"
54 - done
55 - [ ! -e "${NEW_ROOT}/dev/null" ] && mknod "${NEW_ROOT}"/dev/null c 1 3
56 - [ ! -e "${NEW_ROOT}/dev/console" ] && mknod "${NEW_ROOT}"/dev/console c 5 1
57 + mkdir -p ${MEMORY}
58 + mkdir -p ${UNION}
59 + mkdir -p ${CHANGESMNT}
60 + for i in dev mnt ${CDROOT_PATH} mnt/livecd mnt/key tmp tmp/.initrd mnt/gentoo sys
61 + do
62 + mkdir -p "${NEW_ROOT}/${i}"
63 + chmod 755 "${NEW_ROOT}/${i}"
64 + done
65 + [ ! -e "${NEW_ROOT}/dev/null" ] && mknod "${NEW_ROOT}"/dev/null c 1 3
66 + [ ! -e "${NEW_ROOT}/dev/console" ] && mknod "${NEW_ROOT}"/dev/console c 5 1
67
68 - bootstrapCD
69 - if [ -n "${AUFS}" ]
70 + bootstrapCD
71 + if [ -n "${AUFS}" ]
72 + then
73 + if [ "${AUFS}" = "detect" ]
74 then
75 - if [ "${AUFS}" = "detect" ]
76 + CHANGESMNT="${NEW_ROOT}${CDROOT_PATH}"
77 + CHANGESDEV=${REAL_ROOT}
78 + else
79 + CHANGESDEV=${AUFS}
80 + good_msg "mounting ${CHANGESDEV} to ${MEMORY} for aufs support"
81 + mount -t auto ${CHANGESDEV} ${CHANGESMNT}
82 + ret=$?
83 + if [ "${ret}" -ne 0 ]
84 then
85 - CHANGESMNT="${NEW_ROOT}${CDROOT_PATH}"
86 - CHANGESDEV=${REAL_ROOT}
87 - else
88 - CHANGESDEV=${AUFS}
89 - good_msg "mounting ${CHANGESDEV} to ${MEMORY} for aufs support"
90 - mount -t auto ${CHANGESDEV} ${CHANGESMNT}
91 + bad_msg "mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs"
92 + unset AUFS
93 + fi
94 + fi
95 + # Check and attempt to create the changesfile
96 + if [ ! -e ${CHANGESMNT}/${AUFS_CHANGESFILE} ] && [ -n "${AUFS}" ]
97 + then
98 + create_changefs
99 + mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY}
100 + elif [ -n "${AUFS}" ]
101 + then
102 + local nbpass=0
103 + while [ 1 ]
104 + do
105 + mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY}
106 ret=$?
107 if [ "${ret}" -ne 0 ]
108 then
109 - bad_msg "mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs"
110 - unset AUFS
111 - fi
112 - fi
113 - # Check and attempt to create the changesfile
114 - if [ ! -e ${CHANGESMNT}/${AUFS_CHANGESFILE} ] && [ -n "${AUFS}" ]
115 - then
116 - create_changefs
117 - mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY}
118 - elif [ -n "${AUFS}" ]
119 - then
120 - local nbpass=0
121 - while [ 1 ]
122 - do
123 - mount -t auto ${CHANGESMNT}/${AUFS_CHANGESFILE} ${MEMORY}
124 - ret=$?
125 - if [ "${ret}" -ne 0 ]
126 + if [ ${nbpass} -eq 0 ]
127 then
128 - if [ ${nbpass} -eq 0 ]
129 - then
130 - bad_msg "mounting of changes file failed, Running e2fsck"
131 - e2fsck ${CHANGESMNT}/${AUFS_CHANGESFILE}
132 - nbpass=$((${nbpass} + 1))
133 - else
134 - bad_msg "mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs"
135 - bad_msg "your ${AUFS_CHANGESFILE} might be messed up, and I couldn't fix it"
136 - bad_msg "moving ${AUFS_CHANGESFILE} to ${AUFS_CHANGESFILE}.bad"
137 - mv ${CHANGESMNT}/${AUFS_CHANGESFILE} ${CHANGESMNT}/${AUFS_CHANGESFILE}.bad
138 - bad_msg "try to fix it yourself with e2fsck later on, sorry for disturbing"
139 - break
140 - fi
141 + bad_msg "mounting of changes file failed, Running e2fsck"
142 + e2fsck ${CHANGESMNT}/${AUFS_CHANGESFILE}
143 + nbpass=$((${nbpass} + 1))
144 else
145 - if [ ${nbpass} -eq 1 ]
146 - then
147 - good_msg "e2fsck ran successfully. Please check your files after bootup"
148 - fi
149 + bad_msg "mount of ${CHANGESDEV} failed, falling back to ramdisk based aufs"
150 + bad_msg "your ${AUFS_CHANGESFILE} might be messed up, and I couldn't fix it"
151 + bad_msg "moving ${AUFS_CHANGESFILE} to ${AUFS_CHANGESFILE}.bad"
152 + mv ${CHANGESMNT}/${AUFS_CHANGESFILE} ${CHANGESMNT}/${AUFS_CHANGESFILE}.bad
153 + bad_msg "try to fix it yourself with e2fsck later on, sorry for disturbing"
154 break
155 fi
156 - done
157 - fi
158 - # mount tmpfs only in the case when changes= boot parameter was
159 - # empty or we were not able to mount the storage device
160 - if [ "${CDROOT}" -eq '1' -a ! -f ${CHANGESMNT}/${AUFS_CHANGESFILE} ]
161 - then
162 - umount ${MEMORY}
163 - bad_msg "failed to find ${AUFS_CHANGESFILE} file on ${CHANGESDEV}"
164 - bad_msg "create an ext2 ${AUFS_CHANGESFILE} file on this device if you wish to use it for aufs"
165 - bad_msg "falling back to ramdisk based aufs for safety"
166 - mount -t tmpfs tmpfs ${MEMORY}
167 - XINO=${MEMORY}
168 - else
169 - XINO=${MEMORY}/xino
170 - mkdir -p ${XINO}
171 - mount -t tmpfs tmpfs ${XINO}
172 - fi
173 - else
174 - good_msg "Mounting ramdisk to $MEMORY for aufs support..."
175 - mount -t tmpfs tmpfs ${MEMORY}
176 - XINO=${MEMORY}
177 + else
178 + if [ ${nbpass} -eq 1 ]
179 + then
180 + good_msg "e2fsck ran successfully. Please check your files after bootup"
181 + fi
182 + break
183 + fi
184 + done
185 fi
186 -
187 - mkdir -p ${CHANGES}
188 - mount -t aufs -n -o nowarn_perm,udba=none,xino=${XINO}/.aufs.xino,br:${CHANGES}=rw aufs ${UNION}
189 - ret=$?
190 - if [ "${ret}" -ne 0 ]
191 + # mount tmpfs only in the case when changes= boot parameter was
192 + # empty or we were not able to mount the storage device
193 + if [ "${CDROOT}" -eq '1' -a ! -f ${CHANGESMNT}/${AUFS_CHANGESFILE} ]
194 then
195 - bad_msg "Can't setup union ${UNION} in directory!"
196 - USE_AUFS_NORMAL=0
197 + umount ${MEMORY}
198 + bad_msg "failed to find ${AUFS_CHANGESFILE} file on ${CHANGESDEV}"
199 + bad_msg "create an ext2 ${AUFS_CHANGESFILE} file on this device if you wish to use it for aufs"
200 + bad_msg "falling back to ramdisk based aufs for safety"
201 + mount -t tmpfs tmpfs ${MEMORY}
202 + XINO=${MEMORY}
203 + else
204 + XINO=${MEMORY}/xino
205 + mkdir -p ${XINO}
206 + mount -t tmpfs tmpfs ${XINO}
207 fi
208 else
209 + good_msg "Mounting ramdisk to $MEMORY for aufs support..."
210 + mount -t tmpfs tmpfs ${MEMORY}
211 + XINO=${MEMORY}
212 + fi
213 +
214 + mkdir -p ${CHANGES}
215 + mount -t aufs -n -o nowarn_perm,udba=none,xino=${XINO}/.aufs.xino,br:${CHANGES}=rw aufs ${UNION}
216 + ret=$?
217 + if [ "${ret}" -ne 0 ]
218 + then
219 + bad_msg "Can't setup union ${UNION} in directory!"
220 USE_AUFS_NORMAL=0
221 fi
222 }
223
224 diff --git a/defaults/linuxrc b/defaults/linuxrc
225 index 5d4d2a1..894ec45 100644
226 --- a/defaults/linuxrc
227 +++ b/defaults/linuxrc
228 @@ -457,9 +457,9 @@ rundebugshell "before setting up the root filesystem"
229
230 if [ "${CDROOT}" = '1' ]
231 then
232 - setup_aufs
233 if [ "${USE_AUFS_NORMAL}" -eq '1' ]
234 then
235 + setup_aufs
236 CHROOT=${UNION}
237 else
238 CHROOT=${NEW_ROOT}