summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_fault.c
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-01-24 10:48:29 +0000
committerjeff <jeff@FreeBSD.org>2005-01-24 10:48:29 +0000
commit1dd5432139d6d72c98413db88dd01066cd01e0f6 (patch)
treed54b614de87a030b3a296e2fe36f65353ec6b291 /sys/vm/vm_fault.c
parentb033acd6747abedd271e867dc88b3e729a8d74bc (diff)
downloadFreeBSD-src-1dd5432139d6d72c98413db88dd01066cd01e0f6.zip
FreeBSD-src-1dd5432139d6d72c98413db88dd01066cd01e0f6.tar.gz
- Remove GIANT_REQUIRED where giant is no longer required.
- Use VFS_LOCK_GIANT() rather than directly acquiring giant in places where giant is only held because vfs requires it. Sponsored By: Isilon Systems, Inc.
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r--sys/vm/vm_fault.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 6f83c0b..2fc6a0e 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -97,6 +97,8 @@ __FBSDID("$FreeBSD$");
#include <vm/vnode_pager.h>
#include <vm/vm_extern.h>
+#include <sys/mount.h> /* XXX Temporary for VFS_LOCK_GIANT() */
+
#define PFBAK 4
#define PFFOR 4
#define PAGEORDER_SIZE (PFBAK+PFFOR)
@@ -165,10 +167,12 @@ unlock_and_deallocate(struct faultstate *fs)
vm_object_deallocate(fs->first_object);
unlock_map(fs);
if (fs->vp != NULL) {
- mtx_lock(&Giant);
+ int vfslocked;
+
+ vfslocked = VFS_LOCK_GIANT(fs->vp->v_mount);
vput(fs->vp);
- mtx_unlock(&Giant);
fs->vp = NULL;
+ VFS_UNLOCK_GIANT(vfslocked);
}
if (!fs->map->system_map)
VM_UNLOCK_GIANT();
OpenPOWER on IntegriCloud