diff options
-rw-r--r-- | sys/kern/uipc_syscalls.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index 809bdfa..49b6511 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -1890,10 +1890,11 @@ retry_lookup: IO_VMIO | ((MAXBSIZE / bsize) << IO_SEQSHIFT), td->td_ucred, NOCRED, &resid, td); VOP_UNLOCK(vp, 0, td); - if (error) - VM_OBJECT_LOCK(obj); + VM_OBJECT_LOCK(obj); vm_page_lock_queues(); vm_page_io_finish(pg); + if (!error) + VM_OBJECT_UNLOCK(obj); mbstat.sf_iocnt++; } |