summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-06-20 04:20:36 +0000
committeralc <alc@FreeBSD.org>2003-06-20 04:20:36 +0000
commit893b54638f3a661ae9e6e7bc8dfa12746f83e031 (patch)
tree2a547e9d68208ee066d7e17ad9e7550e69a3a0f5 /sys/vm
parent88ed270c3d7240b20e5769f4669bd23a48045308 (diff)
downloadFreeBSD-src-893b54638f3a661ae9e6e7bc8dfa12746f83e031.zip
FreeBSD-src-893b54638f3a661ae9e6e7bc8dfa12746f83e031.tar.gz
The so-called "optimized copy-on-write fault" case should not require
the vm map lock. What's really needed is vm object locking, which is (for the moment) provided Giant. Reviewed by: tegge
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_fault.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index 176716d..cc138c3 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -683,7 +683,7 @@ readrest:
* dirty in the first object so that it will go out
* to swap when needed.
*/
- if (map_generation == fs.map->timestamp &&
+ if (
/*
* Only one shadow object
*/
@@ -704,14 +704,7 @@ readrest:
/*
* We don't chase down the shadow chain
*/
- (fs.object == fs.first_object->backing_object) &&
-
- /*
- * grab the lock if we need to
- */
- (fs.lookup_still_valid || vm_map_trylock(fs.map))) {
-
- fs.lookup_still_valid = 1;
+ fs.object == fs.first_object->backing_object) {
/*
* get rid of the unnecessary page
*/
OpenPOWER on IntegriCloud