diff options
author | nyan <nyan@FreeBSD.org> | 2004-04-25 12:43:44 +0000 |
---|---|---|
committer | nyan <nyan@FreeBSD.org> | 2004-04-25 12:43:44 +0000 |
commit | 2771b37b82eaf2c48d9e2b348458231b218c61a7 (patch) | |
tree | baccdfcfc6818fe7177cae8e4176386998e78d40 /sys/pc98/cbus/fdc.c | |
parent | 2be8f775aac64a255e94fc02e2cc8648d16ea8b3 (diff) | |
download | FreeBSD-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.c | 11 |
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 */ |