summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConstantine Sapuntzakis <csapuntz@cvs.openbsd.org>1997-12-10 02:36:55 +0000
committerConstantine Sapuntzakis <csapuntz@cvs.openbsd.org>1997-12-10 02:36:55 +0000
commitaf991b2c4f5096b23bdd8d577c3993f636129aa3 (patch)
tree62e48a31f75d7c9c016509347003b98125c3164a
parented2568a23bcd65ea6e127a26cc3ea6ce83557c44 (diff)
Fix for chuck cranor's crashme program.
-rw-r--r--sys/vm/vnode_pager.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index a0711f72267..3179af43f71 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vnode_pager.c,v 1.6 1997/11/06 05:59:39 csapuntz Exp $ */
+/* $OpenBSD: vnode_pager.c,v 1.7 1997/12/10 02:36:54 csapuntz Exp $ */
/* $NetBSD: vnode_pager.c,v 1.19 1996/03/16 23:15:27 christos Exp $ */
/*
@@ -295,7 +295,7 @@ vnode_pager_haspage(pager, offset)
* Lock the vnode first to make sure we have the most recent
* version of the size.
*/
- vn_lock(vnp->vnp_vp, LK_EXCLUSIVE | LK_RETRY, p);
+ vn_lock(vnp->vnp_vp, LK_EXCLUSIVE | LK_RETRY | LK_CANRECURSE, p);
if (offset >= vnp->vnp_size) {
VOP_UNLOCK(vnp->vnp_vp, 0, p);
#ifdef DEBUG
@@ -542,7 +542,7 @@ vnode_pager_io(vnp, mlist, npages, sync, rw)
* read beyond EOF (returns error)
* short read
*/
- vn_lock(vnp->vnp_vp, LK_EXCLUSIVE | LK_RETRY, p);
+ vn_lock(vnp->vnp_vp, LK_EXCLUSIVE | LK_RETRY | LK_CANRECURSE, p);
if (foff >= vnp->vnp_size) {
VOP_UNLOCK(vnp->vnp_vp, 0, p);
vm_pager_unmap_pages(kva, npages);