summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/kern/uipc_syscalls.c5
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++;
}
OpenPOWER on IntegriCloud