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 ---