diff options
| author | Poul-Henning Kamp <phk@FreeBSD.org> | 2005-08-29 11:14:18 +0000 |
|---|---|---|
| committer | Poul-Henning Kamp <phk@FreeBSD.org> | 2005-08-29 11:14:18 +0000 |
| commit | 80447bf701cd5363352f5ad3a5e418d85e1754c3 (patch) | |
| tree | 5571819b299a82cd9f882df9d12002757a7c4a7d /sys/fs/devfs | |
| parent | 83c83f3e46983d4db894f768193fd214811615ac (diff) | |
Notes
Diffstat (limited to 'sys/fs/devfs')
| -rw-r--r-- | sys/fs/devfs/devfs_vnops.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/fs/devfs/devfs_vnops.c b/sys/fs/devfs/devfs_vnops.c index e5b6ba3d5a7b9..3d3484b38688d 100644 --- a/sys/fs/devfs/devfs_vnops.c +++ b/sys/fs/devfs/devfs_vnops.c @@ -537,8 +537,11 @@ devfs_ioctl_f(struct file *fp, u_long com, void *data, struct ucred *cred, struc p = devtoname(dev); i = strlen(p) + 1; if (i > fgn->len) - return (EINVAL); - return (copyout(p, fgn->buf, i)); + error = EINVAL; + else + error = copyout(p, fgn->buf, i); + dev_relthread(dev); + return (error); } error = dsw->d_ioctl(dev, com, data, fp->f_flag, td); dev_relthread(dev); @@ -1375,7 +1378,6 @@ static int devfs_write_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, struct thread *td) { struct cdev *dev; - struct vnode *vp; int error, ioflag, resid; struct cdevsw *dsw; @@ -1383,7 +1385,6 @@ devfs_write_f(struct file *fp, struct uio *uio, struct ucred *cred, int flags, s if (error) return (error); KASSERT(uio->uio_td == td, ("uio_td %p is not td %p", uio->uio_td, td)); - vp = fp->f_vnode; ioflag = fp->f_flag & (O_NONBLOCK | O_DIRECT | O_FSYNC); if (ioflag & O_DIRECT) ioflag |= IO_DIRECT; |
