cros_generate_update_payload: Delete -d options from umount
The -d option to umount is unnecessary in cases where the original
mount was created with '-o loop' (it says so in the man page).
Moreover, there's a demonstrable bug when using 'umount -d' in this
case: umount complains that it's unable to delete the loop device
in this case. This change silences those messages.
The demonstrated bug in umount is a plausible explanation for build
failures characterized by unexpected failures of 'mount -o loop';
see the BUG, below.
BUG=chromium-os:24975
TEST=TBD
Change-Id: I8f3b3274ccea3dd5a5b35e880bbe220846061d3a
Reviewed-on: https://gerrit.chromium.org/gerrit/16186
Reviewed-by: David James <davidjames@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
diff --git a/host/cros_generate_update_payload b/host/cros_generate_update_payload
index edbf303..e2fdcd3 100755
--- a/host/cros_generate_update_payload
+++ b/host/cros_generate_update_payload
@@ -52,17 +52,17 @@
cleanup() {
set +e
if [ -n "$SRC_MNT" ]; then
- sudo umount -d "$SRC_MNT"
+ sudo umount "$SRC_MNT"
[ -d "$SRC_MNT" ] && rmdir "$SRC_MNT"
SRC_MNT=""
fi
if [ -n "$DST_MNT" ]; then
- sudo umount -d "$DST_MNT"
+ sudo umount "$DST_MNT"
[ -d "$DST_MNT" ] && rmdir "$DST_MNT"
DST_MNT=""
fi
if [ -n "$STATE_MNT" ]; then
- sudo umount -d "$STATE_MNT" || true
+ sudo umount "$STATE_MNT" || true
[ -d "$STATE_MNT" ] && rmdir "$STATE_MNT"
STATE_MNT=""
fi
@@ -109,7 +109,7 @@
STATE_MNT=$(mktemp -d /tmp/state.XXXXXX)
sudo mount -o ro,loop,offset=$offset "$IMAGE" "$STATE_MNT"
dd if="$STATE_MNT"/vmlinuz_hd.vblock of="$KERN_FILE" conv=notrunc 2>/dev/null
- sudo umount -d "$STATE_MNT"
+ sudo umount "$STATE_MNT"
rmdir "$STATE_MNT"
STATE_MNT=""
}