vm_fault.c (254138) | vm_fault.c (254141) |
---|---|
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 * --- 58 unchanged lines hidden (view full) --- 67 * rights to redistribute these changes. 68 */ 69 70/* 71 * Page fault handling module. 72 */ 73 74#include <sys/cdefs.h> | 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 * --- 58 unchanged lines hidden (view full) --- 67 * rights to redistribute these changes. 68 */ 69 70/* 71 * Page fault handling module. 72 */ 73 74#include <sys/cdefs.h> |
75__FBSDID("$FreeBSD: head/sys/vm/vm_fault.c 254138 2013-08-09 11:11:11Z attilio $"); | 75__FBSDID("$FreeBSD: head/sys/vm/vm_fault.c 254141 2013-08-09 11:28:55Z attilio $"); |
76 77#include "opt_ktrace.h" 78#include "opt_vm.h" 79 80#include <sys/param.h> 81#include <sys/systm.h> 82#include <sys/kernel.h> 83#include <sys/lock.h> --- 663 unchanged lines hidden (view full) --- 747 vm_page_lock(fs.first_m); 748 vm_page_free(fs.first_m); 749 vm_page_unlock(fs.first_m); 750 /* 751 * grab the page and put it into the 752 * process'es object. The page is 753 * automatically made dirty. 754 */ | 76 77#include "opt_ktrace.h" 78#include "opt_vm.h" 79 80#include <sys/param.h> 81#include <sys/systm.h> 82#include <sys/kernel.h> 83#include <sys/lock.h> --- 663 unchanged lines hidden (view full) --- 747 vm_page_lock(fs.first_m); 748 vm_page_free(fs.first_m); 749 vm_page_unlock(fs.first_m); 750 /* 751 * grab the page and put it into the 752 * process'es object. The page is 753 * automatically made dirty. 754 */ |
755 vm_page_lock(fs.m); 756 vm_page_rename(fs.m, fs.first_object, fs.first_pindex); 757 vm_page_unlock(fs.m); | 755 if (vm_page_rename(fs.m, fs.first_object, 756 fs.first_pindex)) { 757 unlock_and_deallocate(&fs); 758 goto RetryFault; 759 } |
758 vm_page_xbusy(fs.m); 759 fs.first_m = fs.m; 760 fs.m = NULL; 761 PCPU_INC(cnt.v_cow_optim); 762 } else { 763 /* 764 * Oh, well, lets copy it. 765 */ --- 764 unchanged lines hidden --- | 760 vm_page_xbusy(fs.m); 761 fs.first_m = fs.m; 762 fs.m = NULL; 763 PCPU_INC(cnt.v_cow_optim); 764 } else { 765 /* 766 * Oh, well, lets copy it. 767 */ --- 764 unchanged lines hidden --- |