summaryrefslogtreecommitdiffstats
path: root/sys/pc98/cbus/fdc.c
diff options
context:
space:
mode:
authornyan <nyan@FreeBSD.org>2004-04-25 12:43:44 +0000
committernyan <nyan@FreeBSD.org>2004-04-25 12:43:44 +0000
commit2771b37b82eaf2c48d9e2b348458231b218c61a7 (patch)
treebaccdfcfc6818fe7177cae8e4176386998e78d40 /sys/pc98/cbus/fdc.c
parent2be8f775aac64a255e94fc02e2cc8648d16ea8b3 (diff)
downloadFreeBSD-src-2771b37b82eaf2c48d9e2b348458231b218c61a7.zip
FreeBSD-src-2771b37b82eaf2c48d9e2b348458231b218c61a7.tar.gz
Merged from sys/isa/fd.c revision 1.270.
Diffstat (limited to 'sys/pc98/cbus/fdc.c')
-rw-r--r--sys/pc98/cbus/fdc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/pc98/cbus/fdc.c b/sys/pc98/cbus/fdc.c
index eb52c16..db692f4 100644
--- a/sys/pc98/cbus/fdc.c
+++ b/sys/pc98/cbus/fdc.c
@@ -3105,9 +3105,16 @@ fdioctl(dev_t dev, u_long cmd, caddr_t addr, int flag, struct thread *td)
return (0);
case FD_STYPE: /* set drive type */
- if (suser(td) != 0)
- return (EPERM);
+ /*
+ * Allow setting drive type temporarily iff
+ * currently unset. Used for fdformat so any
+ * user can set it, and then start formatting.
+ */
+ if (fd->ft)
+ return (EINVAL); /* already set */
fd->fts[0] = *(struct fd_type *)addr;
+ fd->ft = &fd->fts[0];
+ fd->flags |= FD_UA;
return (0);
case FD_GOPTS: /* get drive options */
OpenPOWER on IntegriCloud