functions: fix unmounting for local builds

livecd-rootfs creates non-private mounts. When building locally using
the auto/build script unmounting fails.

To unmount dev/pts it is insufficient to make the mount private. Its
parents must be private too. Change teardown_mountpoint() accordingly.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
no-base-snaps-for-base-snaps
Heinrich Schuchardt 3 years ago
parent 1a7e9ca8c9
commit d65af891f3

@ -158,10 +158,17 @@ teardown_mountpoint() {
# ensure we have exactly one trailing slash, and escape all slashes for awk
mountpoint_match=$(echo "$mountpoint" | sed -e's,/$,,; s,/,\\/,g;')'\/'
# sort -r ensures that deeper mountpoints are unmounted first
# Make all submounts private
for submount in $(awk </proc/self/mounts "\$2 ~ /$mountpoint_match/ \
{ print \$2 }" | LC_ALL=C sort -r); do
mount --make-private $submount
done
# Now we can unmount them
# sort -r ensures that deeper mountpoints are unmounted first
for submount in $(awk </proc/self/mounts "\$2 ~ /$mountpoint_match/ \
{ print \$2 }" | LC_ALL=C sort -r); do
umount $submount
done
recover_sourceslist "${mountpoint}"

Loading…
Cancel
Save