diff options
author | alfred <alfred@FreeBSD.org> | 2002-01-16 21:33:41 +0000 |
---|---|---|
committer | alfred <alfred@FreeBSD.org> | 2002-01-16 21:33:41 +0000 |
commit | b191447bddf1f58dd82ee059fb0a81ebd98c89ca (patch) | |
tree | 3caa735e51f17ff3a46927fa134e5aa5580fa050 /sys/kern/sys_generic.c | |
parent | 6416084cb079115826c7a175d35f7f6f9b67fa7b (diff) | |
download | FreeBSD-src-b191447bddf1f58dd82ee059fb0a81ebd98c89ca.zip FreeBSD-src-b191447bddf1f58dd82ee059fb0a81ebd98c89ca.tar.gz |
Fix giant handling in pwrite(2), I forgot to release it when finishing
the syscall.
Diffstat (limited to 'sys/kern/sys_generic.c')
-rw-r--r-- | sys/kern/sys_generic.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/sys_generic.c b/sys/kern/sys_generic.c index 77b843d..d4fd7285 100644 --- a/sys/kern/sys_generic.c +++ b/sys/kern/sys_generic.c @@ -394,11 +394,12 @@ pwrite(td, uap) struct file *fp; int error; - mtx_lock(&Giant); if ((error = fget_write(td, uap->fd, &fp)) == 0) { if (fp->f_type == DTYPE_VNODE) { + mtx_lock(&Giant); error = dofilewrite(td, fp, uap->fd, uap->buf, uap->nbyte, uap->offset, FOF_OFFSET); + mtx_unlock(&Giant); } else { error = ESPIPE; } |