diff --git a/ChangeLog b/ChangeLog index a1a3aab..912f7b7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,10 @@ gen_initramfs.sh: Make errors stand out more + 22 Mar 2012; Sebastian Pipping defaults/initrd.scripts, + defaults/linuxrc: + Fix docache (bug #397309) + 22 Mar 2012; Sebastian Pipping genkernel: Bump version to 3.4.26 diff --git a/defaults/initrd.scripts b/defaults/initrd.scripts index 4e0e123..6d27a00 100755 --- a/defaults/initrd.scripts +++ b/defaults/initrd.scripts @@ -191,12 +191,11 @@ cache_cd_contents() { cp -a ${CDROOT_PATH}/${LOOP} ${NEW_ROOT}/mnt/${LOOP} if [ $? -ne 0 ] then - bad_msg "Failed to cache the loop file! Lack of space?" + warn_msg "Failed to cache the loop file! Lack of RAM?" + rm -rf ${NEW_ROOT}/mnt/${LOOP} 2>/dev/null rm -rf ${NEW_ROOT}/mnt/livecd.* 2>/dev/null rm -rf ${NEW_ROOT}/mnt/image.* 2>/dev/null rm -rf ${NEW_ROOT}/mnt/zisofs 2>/dev/null - else - LOOPEXT='../' fi fi fi diff --git a/defaults/linuxrc b/defaults/linuxrc index 5932024..9ac2c7c 100755 --- a/defaults/linuxrc +++ b/defaults/linuxrc @@ -627,7 +627,12 @@ then then if [ "${USE_AUFS_NORMAL}" != '1' ]; then good_msg 'Mounting squashfs filesystem' - mount -t squashfs -o loop,ro "${CDROOT_PATH}/${LOOPEXT}${LOOP}" "${NEW_ROOT}/mnt/livecd" || { + _CACHED_SQUASHFS_PATH="${NEW_ROOT}/mnt/${LOOP}" + _squashfs_path="${CDROOT_PATH}/${LOOPEXT}${LOOP}" # Default to uncached + # Upgrade to cached version if possible + [ "${DO_cache}" -a -f "${_CACHED_SQUASHFS_PATH}" ] \ + && _squashfs_path=${_CACHED_SQUASHFS_PATH} + mount -t squashfs -o loop,ro "${_squashfs_path}" "${NEW_ROOT}/mnt/livecd" || { bad_msg "Squashfs filesystem could not be mounted, dropping into shell." if [ -e /proc/filesystems ]; then fgrep -q squashfs /proc/filesystems || \