diff options
author | alc <alc@FreeBSD.org> | 2003-06-20 04:20:36 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-06-20 04:20:36 +0000 |
commit | 893b54638f3a661ae9e6e7bc8dfa12746f83e031 (patch) | |
tree | 2a547e9d68208ee066d7e17ad9e7550e69a3a0f5 /sys/vm/vm_fault.c | |
parent | 88ed270c3d7240b20e5769f4669bd23a48045308 (diff) | |
download | FreeBSD-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/vm_fault.c')
-rw-r--r-- | sys/vm/vm_fault.c | 11 |
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 */ |