vm_fault.c (a7163bb962b66afb768707fa0b5ad6773d755503) vm_fault.c (d3f8534e99e2b2846a882e617648b2abc17406dd)
1/*-
2 * SPDX-License-Identifier: (BSD-4-Clause AND MIT-CMU)
3 *
4 * Copyright (c) 1991, 1993
5 * The Regents of the University of California. All rights reserved.
6 * Copyright (c) 1994 John S. Dyson
7 * All rights reserved.
8 * Copyright (c) 1994 David Greenman

--- 363 unchanged lines hidden (view full) ---

372 vm_page_lock(m);
373 vm_page_deactivate(m);
374 vm_page_unlock(m);
375 vm_page_xunbusy(m);
376 }
377}
378
379static int
1/*-
2 * SPDX-License-Identifier: (BSD-4-Clause AND MIT-CMU)
3 *
4 * Copyright (c) 1991, 1993
5 * The Regents of the University of California. All rights reserved.
6 * Copyright (c) 1994 John S. Dyson
7 * All rights reserved.
8 * Copyright (c) 1994 David Greenman

--- 363 unchanged lines hidden (view full) ---

372 vm_page_lock(m);
373 vm_page_deactivate(m);
374 vm_page_unlock(m);
375 vm_page_xunbusy(m);
376 }
377}
378
379static int
380vm_fault_populate(struct faultstate *fs, vm_offset_t vaddr, vm_prot_t prot,
381 int fault_type, int fault_flags, boolean_t wired, vm_page_t *m_hold)
380vm_fault_populate(struct faultstate *fs, vm_prot_t prot, int fault_type,
381 int fault_flags, boolean_t wired, vm_page_t *m_hold)
382{
383 vm_page_t m;
384 vm_pindex_t map_first, map_last, pager_first, pager_last, pidx;
385 int rv;
386
387 MPASS(fs->object == fs->first_object);
388 VM_OBJECT_ASSERT_WLOCKED(fs->first_object);
389 MPASS(fs->first_object->paging_in_progress > 0);

--- 345 unchanged lines hidden (view full) ---

735 if (fs.pindex >= fs.object->size) {
736 unlock_and_deallocate(&fs);
737 return (KERN_PROTECTION_FAILURE);
738 }
739
740 if (fs.object == fs.first_object &&
741 (fs.first_object->flags & OBJ_POPULATE) != 0 &&
742 fs.first_object->shadow_count == 0) {
382{
383 vm_page_t m;
384 vm_pindex_t map_first, map_last, pager_first, pager_last, pidx;
385 int rv;
386
387 MPASS(fs->object == fs->first_object);
388 VM_OBJECT_ASSERT_WLOCKED(fs->first_object);
389 MPASS(fs->first_object->paging_in_progress > 0);

--- 345 unchanged lines hidden (view full) ---

735 if (fs.pindex >= fs.object->size) {
736 unlock_and_deallocate(&fs);
737 return (KERN_PROTECTION_FAILURE);
738 }
739
740 if (fs.object == fs.first_object &&
741 (fs.first_object->flags & OBJ_POPULATE) != 0 &&
742 fs.first_object->shadow_count == 0) {
743 rv = vm_fault_populate(&fs, vaddr, prot,
744 fault_type, fault_flags, wired, m_hold);
743 rv = vm_fault_populate(&fs, prot, fault_type,
744 fault_flags, wired, m_hold);
745 switch (rv) {
746 case KERN_SUCCESS:
747 case KERN_FAILURE:
748 unlock_and_deallocate(&fs);
749 return (rv);
750 case KERN_RESOURCE_SHORTAGE:
751 unlock_and_deallocate(&fs);
752 goto RetryFault;

--- 1025 unchanged lines hidden ---
745 switch (rv) {
746 case KERN_SUCCESS:
747 case KERN_FAILURE:
748 unlock_and_deallocate(&fs);
749 return (rv);
750 case KERN_RESOURCE_SHORTAGE:
751 unlock_and_deallocate(&fs);
752 goto RetryFault;

--- 1025 unchanged lines hidden ---