Index: chromeos-setimage |
diff --git a/chromeos-setimage b/chromeos-setimage |
index d1be3321a64ccc6f4ffdede1fba95268a1ac3457..162170be369976e52ce91f40e32dd6196964ef9d 100755 |
--- a/chromeos-setimage |
+++ b/chromeos-setimage |
@@ -113,21 +113,29 @@ ESP_LOOP= |
ROOT_LOOP= |
KERN_LOOP= |
+# Cleans up a device and unmount if required. |
cleanup_loop() { |
local dev="$1" |
+ local need_umount="$2" |
if [ -z "$dev" ]; then |
return 0 |
fi |
- (sudo umount "$dev" || true) |
- (sudo losetup -d "$dev" || true) |
+ if [ "$need_umount" = ${FLAGS_TRUE} ]; then |
Will Drewry
2010/11/23 01:36:50
nit: FLAGS_TRUE/FALSE is normally checked with -eq
Hung-Te
2010/11/23 02:14:52
Done.
|
+ sudo umount -d "$dev" || true |
+ elif [ "$need_umount" = ${FLAGS_FALSE} ]; then |
+ sudo losetup -d "$dev" || true |
+ else |
+ echo "INTERNAL ERROR: unknown parameter for cleanup_loop: $need_umount" >&2 |
+ fi |
} |
cleanup() { |
- cleanup_loop "${ESP_LOOP}" |
+ # Currently only ESP may be mounted. KERN and ROOT are never mounted. |
+ cleanup_loop "${ESP_LOOP}" "${FLAGS_TRUE}" |
ESP_LOOP= |
- cleanup_loop "${KERN_LOOP}" |
+ cleanup_loop "${KERN_LOOP}" "${FLAGS_FALSE}" |
KERN_LOOP= |
- cleanup_loop "${ROOT_LOOP}" |
+ cleanup_loop "${ROOT_LOOP}" "${FLAGS_FALSE}" |
ROOT_LOOP= |
# Failing to clean this up isn't the worst. |