diff options
Diffstat (limited to 'mdk-stage1')
-rw-r--r-- | mdk-stage1/cdrom.c | 2 | ||||
-rw-r--r-- | mdk-stage1/disk.c | 6 | ||||
-rw-r--r-- | mdk-stage1/lomount.c | 2 | ||||
-rw-r--r-- | mdk-stage1/modules.c | 2 | ||||
-rw-r--r-- | mdk-stage1/mount.c | 20 | ||||
-rw-r--r-- | mdk-stage1/mount.h | 2 | ||||
-rw-r--r-- | mdk-stage1/network.c | 2 | ||||
-rw-r--r-- | mdk-stage1/stage1.c | 2 | ||||
-rw-r--r-- | mdk-stage1/tools.c | 2 |
9 files changed, 15 insertions, 25 deletions
diff --git a/mdk-stage1/cdrom.c b/mdk-stage1/cdrom.c index d99877b7f..c3ff2e802 100644 --- a/mdk-stage1/cdrom.c +++ b/mdk-stage1/cdrom.c @@ -41,7 +41,7 @@ static int mount_that_cd_device(char * dev_name) strcpy(device_fullname, "/dev/"); strcat(device_fullname, dev_name); - return my_mount(device_fullname, IMAGE_LOCATION, "iso9660"); + return my_mount(device_fullname, IMAGE_LOCATION, "iso9660", 0); } diff --git a/mdk-stage1/disk.c b/mdk-stage1/disk.c index 9b47ce466..ec9e1a97f 100644 --- a/mdk-stage1/disk.c +++ b/mdk-stage1/disk.c @@ -106,9 +106,9 @@ 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) { + if (my_mount(device_fullname, disk_own_mount, "ext2", 0) == -1 && + my_mount(device_fullname, disk_own_mount, "vfat", 0) == -1 && + my_mount(device_fullname, disk_own_mount, "reiserfs", 0) == -1) { stg1_error_message("I can't find a valid filesystem (tried: ext2, vfat, reiserfs)."); return try_with_device(dev_name); } diff --git a/mdk-stage1/lomount.c b/mdk-stage1/lomount.c index 7d34948b0..991a862c7 100644 --- a/mdk-stage1/lomount.c +++ b/mdk-stage1/lomount.c @@ -146,7 +146,7 @@ lomount(char *loopfile, char *where) return 1; } - if (my_mount(loopdev, where, "iso9660")) { + if (my_mount(loopdev, where, "iso9660", 0)) { del_loop(); return 1; } diff --git a/mdk-stage1/modules.c b/mdk-stage1/modules.c index 8d2825993..dac13ff7c 100644 --- a/mdk-stage1/modules.c +++ b/mdk-stage1/modules.c @@ -390,7 +390,7 @@ void update_modules(void) my_insmod("floppy", ANY_DRIVER_TYPE, NULL); - if (my_mount("/dev/fd0", floppy_mount_location, "ext2") == -1) { + if (my_mount("/dev/fd0", floppy_mount_location, "ext2", 0) == -1) { enum return_type results = ask_yes_no("I can't find a Linux ext2 floppy in first floppy drive.\n" "Retry?"); if (results == RETURN_OK) diff --git a/mdk-stage1/mount.c b/mdk-stage1/mount.c index 171bf30b5..9098456b6 100644 --- a/mdk-stage1/mount.c +++ b/mdk-stage1/mount.c @@ -99,9 +99,9 @@ static int ensure_dev_exists(char *dev) /* mounts, creating the device if needed+possible */ -int my_mount(char *dev, char *location, char *fs) +int my_mount(char *dev, char *location, char *fs, int force_rw) { - unsigned long flags; + unsigned long flags = MS_MGC_VAL | (force_rw ? 0 : MS_RDONLY); char * opts = NULL; struct stat buf; int rc; @@ -135,33 +135,24 @@ int my_mount(char *dev, char *location, char *fs) } } - flags = MS_MGC_VAL; - #ifndef DISABLE_MEDIAS if (!strcmp(fs, "vfat")) { my_insmod("vfat", ANY_DRIVER_TYPE, NULL); opts = "check=relaxed"; } - if (!strcmp(fs, "reiserfs")) { + if (!strcmp(fs, "reiserfs")) my_insmod("reiserfs", ANY_DRIVER_TYPE, NULL); - } - if (!strcmp(fs, "iso9660")) { + if (!strcmp(fs, "iso9660")) my_insmod("isofs", ANY_DRIVER_TYPE, NULL); - flags |= MS_RDONLY; - } #endif #ifndef DISABLE_NETWORK if (!strcmp(fs, "nfs")) { - int flags = 0; - + int flags = MS_RDONLY; my_insmod("nfs", ANY_DRIVER_TYPE, NULL); - flags |= MS_RDONLY; - log_message("preparing nfsmount for %s", dev); - rc = nfsmount_prepare(dev, &flags, &opts); if (rc != 0) return rc; @@ -169,7 +160,6 @@ int my_mount(char *dev, char *location, char *fs) #endif rc = mount(dev, location, fs, flags, opts); - if (rc != 0) { log_perror("mount failed"); rmdir(location); diff --git a/mdk-stage1/mount.h b/mdk-stage1/mount.h index b679e5c30..992796bde 100644 --- a/mdk-stage1/mount.h +++ b/mdk-stage1/mount.h @@ -26,6 +26,6 @@ #include "nfsmount.h" #endif -int my_mount(char *dev, char *location, char *fs); +int my_mount(char *dev, char *location, char *fs, int force_rw); #endif diff --git a/mdk-stage1/network.c b/mdk-stage1/network.c index 6cf24f626..6eb28e5e5 100644 --- a/mdk-stage1/network.c +++ b/mdk-stage1/network.c @@ -648,7 +648,7 @@ enum return_type nfs_prepare(void) strcat(nfsmount_location, ":"); strcat(nfsmount_location, answers[1]); - if (my_mount(nfsmount_location, IMAGE_LOCATION, "nfs") == -1) { + if (my_mount(nfsmount_location, IMAGE_LOCATION, "nfs", 0) == -1) { stg1_error_message("I can't mount the directory from the NFS server."); results = RETURN_BACK; continue; diff --git a/mdk-stage1/stage1.c b/mdk-stage1/stage1.c index df297ead8..b8c6914ce 100644 --- a/mdk-stage1/stage1.c +++ b/mdk-stage1/stage1.c @@ -226,7 +226,7 @@ static void expert_third_party_modules(void) my_insmod("floppy", ANY_DRIVER_TYPE, NULL); - if (my_mount("/dev/fd0", floppy_mount_location, "ext2") == -1) { + if (my_mount("/dev/fd0", floppy_mount_location, "ext2", 0) == -1) { stg1_error_message("I can't find a Linux ext2 floppy in first floppy drive."); return expert_third_party_modules(); } diff --git a/mdk-stage1/tools.c b/mdk-stage1/tools.c index bd99f6cf3..ad136b4d4 100644 --- a/mdk-stage1/tools.c +++ b/mdk-stage1/tools.c @@ -295,7 +295,7 @@ enum return_type load_ramdisk_fd(int ramdisk_fd, int size) BZ2_bzclose(st2); /* opened by gzdopen, but also closes the associated fd */ close(ram_fd); - if (my_mount(ramdisk, STAGE2_LOCATION, "ext2")) + if (my_mount(ramdisk, STAGE2_LOCATION, "ext2", 1)) return RETURN_ERROR; set_param(MODE_RAMDISK); |