diff options
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 77b843dddf44..d4fd72858144 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; } |
