aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_object.c
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2010-05-05 18:16:06 +0000
committerAlan Cox <alc@FreeBSD.org>2010-05-05 18:16:06 +0000
commit5ac59343be1105caac5ff4bbc4c20f94da925a7c (patch)
treeaed312c92f14a164a2e36963e81da2e8973206a2 /sys/vm/vm_object.c
parentb5f770bd8627d79822809f223a3ad5eab7bcadd6 (diff)
downloadsrc-5ac59343be1105caac5ff4bbc4c20f94da925a7c.tar.gz
src-5ac59343be1105caac5ff4bbc4c20f94da925a7c.zip
Acquire the page lock around all remaining calls to vm_page_free() on
managed pages that didn't already have that lock held. (Freeing an unmanaged page, such as the various pmaps use, doesn't require the page lock.) This allows a change in vm_page_remove()'s locking requirements. It now expects the page lock to be held instead of the page queues lock. Consequently, the page queues lock is no longer required at all by callers to vm_page_rename(). Discussed with: kib
Notes
Notes: svn path=/head/; revision=207669
Diffstat (limited to 'sys/vm/vm_object.c')
-rw-r--r--sys/vm/vm_object.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c
index b5f246c0becd..f8c50bc73a06 100644
--- a/sys/vm/vm_object.c
+++ b/sys/vm/vm_object.c
@@ -1461,9 +1461,7 @@ retry:
goto retry;
}
vm_page_lock(m);
- vm_page_lock_queues();
vm_page_rename(m, new_object, idx);
- vm_page_unlock_queues();
vm_page_unlock(m);
/* page automatically made dirty by rename and cache handled */
vm_page_busy(m);
@@ -1691,9 +1689,7 @@ vm_object_backing_scan(vm_object_t object, int op)
* mapped through the rename.
*/
vm_page_lock(p);
- vm_page_lock_queues();
vm_page_rename(p, object, new_pindex);
- vm_page_unlock_queues();
vm_page_unlock(p);
/* page automatically made dirty by rename */
}