From 42a4395788a87d1a7665c0a8b1e5517fd264961b Mon Sep 17 00:00:00 2001 From: udeved Date: Sun, 11 Jan 2015 22:31:47 +0100 Subject: [PATCH] small update to util-mount.sh --- lib/util-mount.sh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/util-mount.sh b/lib/util-mount.sh index b63e2f9..7ec4fa4 100644 --- a/lib/util-mount.sh +++ b/lib/util-mount.sh @@ -57,27 +57,30 @@ ignore_error() { } track_mount() { - if [[ -z $CHROOT_ACTIVE_MOUNTS ]]; then - CHROOT_ACTIVE_MOUNTS=() - trap 'chroot_umount' EXIT - fi +# if [[ -z $CHROOT_ACTIVE_MOUNTS ]]; then +# CHROOT_ACTIVE_MOUNTS=() +# trap 'chroot_umount' EXIT +# fi mount "$@" && CHROOT_ACTIVE_MOUNTS=("$2" "${CHROOT_ACTIVE_MOUNTS[@]}") } mount_conditionally() { - local cond=$1; shift - if eval "$cond"; then + local cond=$1; shift + if eval "$cond"; then track_mount "$@" - fi + fi } api_fs_mount() { + CHROOT_ACTIVE_MOUNTS=() + [[ $(trap -p EXIT) ]] && die '(BUG): attempting to overwrite existing EXIT trap' + trap 'chroot_umount' EXIT mount_conditionally "! mountpoint -q '$1'" "$1" "$1" --bind && track_mount proc "$1/proc" -t proc -o nosuid,noexec,nodev && track_mount sys "$1/sys" -t sysfs -o nosuid,noexec,nodev,ro && - #ignore_error mount_conditionally "[[ -d '$1/sys/firmware/efi/efivars' ]]" \ - # efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && +# ignore_error mount_conditionally "[[ -d '$1/sys/firmware/efi/efivars' ]]" \ +# efivarfs "$1/sys/firmware/efi/efivars" -t efivarfs -o nosuid,noexec,nodev && track_mount udev "$1/dev" -t devtmpfs -o mode=0755,nosuid && track_mount devpts "$1/dev/pts" -t devpts -o mode=0620,gid=5,nosuid,noexec && track_mount shm "$1/dev/shm" -t tmpfs -o mode=1777,nosuid,nodev && @@ -87,6 +90,7 @@ api_fs_mount() { chroot_umount() { umount "${CHROOT_ACTIVE_MOUNTS[@]}" + unset CHROOT_ACTIVE_MOUNTS } fstype_is_pseudofs() {