summaryrefslogtreecommitdiff
path: root/sys/vm/vnode_pager.c
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2003-06-22 21:35:41 +0000
committerAlan Cox <alc@FreeBSD.org>2003-06-22 21:35:41 +0000
commitf29ba63ec91fe9ed9f731e690254bba1d38f0b78 (patch)
tree35bfb2aa8b61e54802910fb4be459989a2516fbe /sys/vm/vnode_pager.c
parent7144b1d4bd26552b6a24479f1e138b1eb1769bc5 (diff)
Notes
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r--sys/vm/vnode_pager.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index bfc255d67ebf..69f4b421a6bc 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -214,7 +214,7 @@ vnode_pager_haspage(object, pindex, before, after)
int bsize;
int pagesperblock, blocksperpage;
- GIANT_REQUIRED;
+ VM_OBJECT_LOCK_ASSERT(object, MA_OWNED);
/*
* If no vp or vp is doomed or marked transparent to VM, we do not
* have the page.
@@ -245,8 +245,10 @@ vnode_pager_haspage(object, pindex, before, after)
blocksperpage = (PAGE_SIZE / bsize);
reqblock = pindex * blocksperpage;
}
+ VM_OBJECT_UNLOCK(object);
err = VOP_BMAP(vp, reqblock, (struct vnode **) 0, &bn,
after, before);
+ VM_OBJECT_LOCK(object);
if (err)
return TRUE;
if (bn == -1)