summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/disk.c
diff options
context:
space:
mode:
authorGuillaume Cottenceau <gc@mandriva.com>2001-01-11 23:31:43 +0000
committerGuillaume Cottenceau <gc@mandriva.com>2001-01-11 23:31:43 +0000
commit8dd6df7dd0291f94448bd72803384760ed49c67f (patch)
treeeb41db224398d174e4c5d1a47bcd985f1aa92ec7 /mdk-stage1/disk.c
parent774e371261e54ced36c80addd09342f2d06344ed (diff)
downloaddrakx-8dd6df7dd0291f94448bd72803384760ed49c67f.tar
drakx-8dd6df7dd0291f94448bd72803384760ed49c67f.tar.gz
drakx-8dd6df7dd0291f94448bd72803384760ed49c67f.tar.bz2
drakx-8dd6df7dd0291f94448bd72803384760ed49c67f.tar.xz
drakx-8dd6df7dd0291f94448bd72803384760ed49c67f.zip
fix failing umount for DISK installs in some failing loopback situations
Diffstat (limited to 'mdk-stage1/disk.c')
-rw-r--r--mdk-stage1/disk.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/mdk-stage1/disk.c b/mdk-stage1/disk.c
index ac38f82e0..df2552bd5 100644
--- a/mdk-stage1/disk.c
+++ b/mdk-stage1/disk.c
@@ -108,7 +108,7 @@ static enum return_type try_with_device(char *dev_name)
strcpy(device_fullname, "/dev/");
strcat(device_fullname, choice);
-
+
if (my_mount(device_fullname, disk_own_mount, "ext2") == -1 &&
my_mount(device_fullname, disk_own_mount, "vfat") == -1 &&
my_mount(device_fullname, disk_own_mount, "reiserfs") == -1) {
@@ -140,7 +140,7 @@ static enum return_type try_with_device(char *dev_name)
log_message("%s exists and is not a directory, assuming this is an ISO image", location_full);
if (lomount(location_full, IMAGE_LOCATION)) {
error_message("Could not mount ISO image.");
- umount(IMAGE_LOCATION);
+ umount(disk_own_mount);
return try_with_device(dev_name);
}
} else
@@ -154,11 +154,11 @@ static enum return_type try_with_device(char *dev_name)
"Here's a short extract of the files in the directory:\n"
"%s", list_directory(IMAGE_LOCATION));
umount(disk_own_mount);
- unlink(IMAGE_LOCATION);
return try_with_device(dev_name);
}
if (load_ramdisk() != RETURN_OK) {
error_message("Could not load program into memory.");
+ umount(disk_own_mount);
return try_with_device(dev_name);
}
} else {
@@ -170,7 +170,6 @@ static enum return_type try_with_device(char *dev_name)
"Here's a short extract of the files in the directory:\n"
"%s", list_directory(IMAGE_LOCATION));
umount(disk_own_mount);
- unlink(IMAGE_LOCATION);
return try_with_device(dev_name);
}
if (readlink(IMAGE_LOCATION LIVE_LOCATION "/usr/bin/runinstall2", &p, 1) != 1) {
@@ -178,7 +177,6 @@ static enum return_type try_with_device(char *dev_name)
"You need more memory to perform an installation from a Windows partition. "
"Another solution if to copy the " DISTRIB_NAME " Distribution on a Linux partition.");
umount(disk_own_mount);
- unlink(IMAGE_LOCATION);
return try_with_device(dev_name);
}
log_message("found the " DISTRIB_NAME " Installation, good news!");