vm_fault.c (7263c8c0998402e9860a0865013fbec4ece98cd4) | vm_fault.c (85af31a4646e2393c934cc4de2e7f6c8d38ecda4) |
---|---|
1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 1994 John S. Dyson 5 * All rights reserved. 6 * Copyright (c) 1994 David Greenman 7 * All rights reserved. 8 * --- 334 unchanged lines hidden (view full) --- 343 } 344 345 if (fs.entry->eflags & MAP_ENTRY_IN_TRANSITION && 346 fs.entry->wiring_thread != curthread) { 347 vm_map_unlock_read(fs.map); 348 vm_map_lock(fs.map); 349 if (vm_map_lookup_entry(fs.map, vaddr, &fs.entry) && 350 (fs.entry->eflags & MAP_ENTRY_IN_TRANSITION)) { | 1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * Copyright (c) 1994 John S. Dyson 5 * All rights reserved. 6 * Copyright (c) 1994 David Greenman 7 * All rights reserved. 8 * --- 334 unchanged lines hidden (view full) --- 343 } 344 345 if (fs.entry->eflags & MAP_ENTRY_IN_TRANSITION && 346 fs.entry->wiring_thread != curthread) { 347 vm_map_unlock_read(fs.map); 348 vm_map_lock(fs.map); 349 if (vm_map_lookup_entry(fs.map, vaddr, &fs.entry) && 350 (fs.entry->eflags & MAP_ENTRY_IN_TRANSITION)) { |
351 if (fs.vp != NULL) { 352 vput(fs.vp); 353 fs.vp = NULL; 354 } |
|
351 fs.entry->eflags |= MAP_ENTRY_NEEDS_WAKEUP; 352 vm_map_unlock_and_wait(fs.map, 0); 353 } else 354 vm_map_unlock(fs.map); 355 goto RetryFault; 356 } 357 358 if (wired) --- 1249 unchanged lines hidden --- | 355 fs.entry->eflags |= MAP_ENTRY_NEEDS_WAKEUP; 356 vm_map_unlock_and_wait(fs.map, 0); 357 } else 358 vm_map_unlock(fs.map); 359 goto RetryFault; 360 } 361 362 if (wired) --- 1249 unchanged lines hidden --- |