summaryrefslogtreecommitdiffstats
path: root/sys/isa
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2004-04-25 04:33:56 +0000
committerbde <bde@FreeBSD.org>2004-04-25 04:33:56 +0000
commit6001f5dc12c780c315e92fa26087ba79ea5a5ca8 (patch)
tree1d24541912dba55d66cb0385fbb967029ec424ba /sys/isa
parentbb38d1c32b95f7b9f97691f39016486f9e413689 (diff)
downloadFreeBSD-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.c11
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 */
OpenPOWER on IntegriCloud