diff options
author | jkh <jkh@FreeBSD.org> | 1996-07-13 05:09:29 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1996-07-13 05:09:29 +0000 |
commit | 394f0328da8c5cb4d1e5a5f9cdee314d75537822 (patch) | |
tree | d542ab70c0b4876c88c350a22ef812387d5cbf76 /usr.sbin | |
parent | 6b94c09b12e0bbbb24421f469c57cb25fb2a6d5b (diff) | |
download | FreeBSD-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 'usr.sbin')
-rw-r--r-- | usr.sbin/sade/devices.c | 7 | ||||
-rw-r--r-- | usr.sbin/sysinstall/cdrom.c | 8 | ||||
-rw-r--r-- | usr.sbin/sysinstall/devices.c | 7 |
3 files changed, 11 insertions, 11 deletions
diff --git a/usr.sbin/sade/devices.c b/usr.sbin/sade/devices.c index be307e2..c3df48a 100644 --- a/usr.sbin/sade/devices.c +++ b/usr.sbin/sade/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), diff --git a/usr.sbin/sysinstall/cdrom.c b/usr.sbin/sysinstall/cdrom.c index 465ae34..5d0c7dd 100644 --- a/usr.sbin/sysinstall/cdrom.c +++ b/usr.sbin/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/usr.sbin/sysinstall/devices.c b/usr.sbin/sysinstall/devices.c index be307e2..c3df48a 100644 --- a/usr.sbin/sysinstall/devices.c +++ b/usr.sbin/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), |