diff options
author | bde <bde@FreeBSD.org> | 2004-04-25 04:33:56 +0000 |
---|---|---|
committer | bde <bde@FreeBSD.org> | 2004-04-25 04:33:56 +0000 |
commit | 6001f5dc12c780c315e92fa26087ba79ea5a5ca8 (patch) | |
tree | 1d24541912dba55d66cb0385fbb967029ec424ba /sys/isa | |
parent | bb38d1c32b95f7b9f97691f39016486f9e413689 (diff) | |
download | FreeBSD-src-6001f5dc12c780c315e92fa26087ba79ea5a5ca8.zip FreeBSD-src-6001f5dc12c780c315e92fa26087ba79ea5a5ca8.tar.gz |
Fixed breakage of the formatting operation in rev.1.266. The wrong
clause of an if-else statement was removed.
Reviewed by: no response from maintainer in 12 days
Diffstat (limited to 'sys/isa')
-rw-r--r-- | sys/isa/fd.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/isa/fd.c b/sys/isa/fd.c index f77393e..ad882db 100644 --- a/sys/isa/fd.c +++ b/sys/isa/fd.c @@ -2600,9 +2600,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 */ |