diff options
author | alc <alc@FreeBSD.org> | 2004-08-19 02:37:12 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-08-19 02:37:12 +0000 |
commit | 268e93a97ab7c72fc1761c0b603ddbc58df9ce01 (patch) | |
tree | 6a1ca073906b6ee6ab2b2227f4fc755b2457b374 | |
parent | 3d9f38d578f2750c746f9dd136227ca23b607aa8 (diff) | |
download | FreeBSD-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.c | 2 |
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; |