summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-08-19 02:37:12 +0000
committeralc <alc@FreeBSD.org>2004-08-19 02:37:12 +0000
commit268e93a97ab7c72fc1761c0b603ddbc58df9ce01 (patch)
tree6a1ca073906b6ee6ab2b2227f4fc755b2457b374
parent3d9f38d578f2750c746f9dd136227ca23b607aa8 (diff)
downloadFreeBSD-src-268e93a97ab7c72fc1761c0b603ddbc58df9ce01.zip
FreeBSD-src-268e93a97ab7c72fc1761c0b603ddbc58df9ce01.tar.gz
Acquire and release Giant around a call to VOP_BMAP(). (This is a
prerequisite to any further reduction in Giant's use by vm_fault().)
-rw-r--r--sys/vm/vnode_pager.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index 4f6ec45..f79e516 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -243,7 +243,9 @@ vnode_pager_haspage(object, pindex, before, after)
reqblock = pindex * blocksperpage;
}
VM_OBJECT_UNLOCK(object);
+ mtx_lock(&Giant);
err = VOP_BMAP(vp, reqblock, NULL, &bn, after, before);
+ mtx_unlock(&Giant);
VM_OBJECT_LOCK(object);
if (err)
return TRUE;
OpenPOWER on IntegriCloud