vm_fault.c (593e717ec93507c09c4248cd3c4a775eecf40c54) | vm_fault.c (ec96dca7884d77ad76e9dbb58b58b7165aa5c6d2) |
---|---|
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 * --- 470 unchanged lines hidden (view full) --- 479 } 480 is_first_object_locked = FALSE; 481 if ((behavior == MAP_ENTRY_BEHAV_SEQUENTIAL || 482 (behavior != MAP_ENTRY_BEHAV_RANDOM && 483 fs.pindex >= fs.entry->lastr && 484 fs.pindex < fs.entry->lastr + VM_FAULT_READ)) && 485 (fs.first_object == fs.object || 486 (is_first_object_locked = VM_OBJECT_TRYLOCK(fs.first_object))) && | 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 * --- 470 unchanged lines hidden (view full) --- 479 } 480 is_first_object_locked = FALSE; 481 if ((behavior == MAP_ENTRY_BEHAV_SEQUENTIAL || 482 (behavior != MAP_ENTRY_BEHAV_RANDOM && 483 fs.pindex >= fs.entry->lastr && 484 fs.pindex < fs.entry->lastr + VM_FAULT_READ)) && 485 (fs.first_object == fs.object || 486 (is_first_object_locked = VM_OBJECT_TRYLOCK(fs.first_object))) && |
487 fs.first_object->type != OBJT_DEVICE) { | 487 fs.first_object->type != OBJT_DEVICE && 488 fs.first_object->type != OBJT_PHYS) { |
488 vm_pindex_t firstpindex, tmppindex; 489 490 if (fs.first_pindex < 2 * VM_FAULT_READ) 491 firstpindex = 0; 492 else 493 firstpindex = fs.first_pindex - 2 * VM_FAULT_READ; 494 495 vm_page_lock_queues(); --- 7 unchanged lines hidden (view full) --- 503 --tmppindex) { 504 vm_page_t mt; 505 506 mt = vm_page_lookup(fs.first_object, tmppindex); 507 if (mt == NULL || (mt->valid != VM_PAGE_BITS_ALL)) 508 break; 509 if (mt->busy || 510 (mt->oflags & VPO_BUSY) || | 489 vm_pindex_t firstpindex, tmppindex; 490 491 if (fs.first_pindex < 2 * VM_FAULT_READ) 492 firstpindex = 0; 493 else 494 firstpindex = fs.first_pindex - 2 * VM_FAULT_READ; 495 496 vm_page_lock_queues(); --- 7 unchanged lines hidden (view full) --- 504 --tmppindex) { 505 vm_page_t mt; 506 507 mt = vm_page_lookup(fs.first_object, tmppindex); 508 if (mt == NULL || (mt->valid != VM_PAGE_BITS_ALL)) 509 break; 510 if (mt->busy || 511 (mt->oflags & VPO_BUSY) || |
511 (mt->flags & PG_UNMANAGED) || | |
512 mt->hold_count || 513 mt->wire_count) 514 continue; 515 pmap_remove_all(mt); 516 if (mt->dirty) { 517 vm_page_deactivate(mt); 518 } else { 519 vm_page_cache(mt); --- 805 unchanged lines hidden --- | 512 mt->hold_count || 513 mt->wire_count) 514 continue; 515 pmap_remove_all(mt); 516 if (mt->dirty) { 517 vm_page_deactivate(mt); 518 } else { 519 vm_page_cache(mt); --- 805 unchanged lines hidden --- |