summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_generic.c
diff options
context:
space:
mode:
authoralfred <alfred@FreeBSD.org>2002-01-16 21:33:41 +0000
committeralfred <alfred@FreeBSD.org>2002-01-16 21:33:41 +0000
commitb191447bddf1f58dd82ee059fb0a81ebd98c89ca (patch)
tree3caa735e51f17ff3a46927fa134e5aa5580fa050 /sys/kern/sys_generic.c
parent6416084cb079115826c7a175d35f7f6f9b67fa7b (diff)
downloadFreeBSD-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.c3
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;
}
OpenPOWER on IntegriCloud