summaryrefslogtreecommitdiffstats
path: root/release
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1996-07-13 05:09:29 +0000
committerjkh <jkh@FreeBSD.org>1996-07-13 05:09:29 +0000
commit394f0328da8c5cb4d1e5a5f9cdee314d75537822 (patch)
treed542ab70c0b4876c88c350a22ef812387d5cbf76 /release
parent6b94c09b12e0bbbb24421f469c57cb25fb2a6d5b (diff)
downloadFreeBSD-src-394f0328da8c5cb4d1e5a5f9cdee314d75537822.zip
FreeBSD-src-394f0328da8c5cb4d1e5a5f9cdee314d75537822.tar.gz
Fix EBUSY checking in devices.c - DTRT when it's detected on a CD.
Diffstat (limited to 'release')
-rw-r--r--release/sysinstall/cdrom.c8
-rw-r--r--release/sysinstall/devices.c7
2 files changed, 7 insertions, 8 deletions
diff --git a/release/sysinstall/cdrom.c b/release/sysinstall/cdrom.c
index 465ae34..5d0c7dd 100644
--- a/release/sysinstall/cdrom.c
+++ b/release/sysinstall/cdrom.c
@@ -4,7 +4,7 @@
* This is probably the last attempt in the `sysinstall' line, the next
* generation being slated to essentially a complete rewrite.
*
- * $Id: cdrom.c,v 1.17 1996/07/08 08:54:22 jkh Exp $
+ * $Id: cdrom.c,v 1.18 1996/07/12 11:13:54 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -76,9 +76,6 @@ mediaInitCDROM(Device *dev)
if (cdromMounted != CD_UNMOUNTED)
return TRUE;
- if (Mkdir("/cdrom"))
- return FALSE;
-
bzero(&args, sizeof(args));
args.fspec = dev->devname;
args.flags = 0;
@@ -88,6 +85,7 @@ mediaInitCDROM(Device *dev)
dontRead = FALSE;
/* If this cdrom's not already mounted or can't be mounted, yell */
if (!file_readable("/cdrom/cdrom.inf")) {
+ Mkdir("/cdrom");
if (mount(MOUNT_CD9660, "/cdrom", MNT_RDONLY, (caddr_t) &args) == -1) {
msgConfirm("Error mounting %s on /cdrom: %s (%u)", dev->devname, strerror(errno), errno);
return FALSE;
@@ -119,7 +117,7 @@ mediaInitCDROM(Device *dev)
"does not match the version of this boot floppy (%s).\n"
"If this is intentional, then please visit the Options editor\n"
"to set the boot floppy version string to match that of the CD\n"
- "before selecting it as an installation media.");
+ "before selecting it as an installation media.", cp, variable_get(VAR_RELNAME));
cdromMounted = CD_UNMOUNTED;
return FALSE;
}
diff --git a/release/sysinstall/devices.c b/release/sysinstall/devices.c
index be307e2..c3df48a 100644
--- a/release/sysinstall/devices.c
+++ b/release/sysinstall/devices.c
@@ -4,7 +4,7 @@
* This is probably the last program in the `sysinstall' line - the next
* generation being essentially a complete rewrite.
*
- * $Id: devices.c,v 1.46 1996/06/12 17:09:31 jkh Exp $
+ * $Id: devices.c,v 1.47 1996/06/13 17:07:37 jkh Exp $
*
* Copyright (c) 1995
* Jordan Hubbard. All rights reserved.
@@ -141,8 +141,8 @@ deviceTry(char *name, char *try)
fd = open(try, O_RDWR);
if (fd > 0)
return fd;
- else if (errno == EACCES)
- return 0;
+ if (errno == EBUSY)
+ return -1;
snprintf(try, FILENAME_MAX, "/mnt/dev/%s", name);
fd = open(try, O_RDWR);
return fd;
@@ -229,6 +229,7 @@ deviceGetAll(void)
switch(device_names[i].type) {
case DEVICE_TYPE_CDROM:
fd = deviceTry(device_names[i].name, try);
+ msgDebug("Try for %s returns errno %d\n", device_names[i].name, errno);
if (fd >= 0 || errno == EBUSY) { /* EBUSY if already mounted */
if (fd >= 0) close(fd);
(void)deviceRegister(device_names[i].name, device_names[i].description, strdup(try),
OpenPOWER on IntegriCloud