diff options
author | alc <alc@FreeBSD.org> | 2015-04-02 19:10:33 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2015-04-02 19:10:33 +0000 |
commit | a75a91e66032ad7ead8007dcdeb6f97dbf83669f (patch) | |
tree | 00709112c8225921cc7d50fe20ca4a50f79ac58e /sys | |
parent | 4b74d7e3efdd886761a3f7aac74f04ec2d236489 (diff) | |
download | FreeBSD-src-a75a91e66032ad7ead8007dcdeb6f97dbf83669f.zip FreeBSD-src-a75a91e66032ad7ead8007dcdeb6f97dbf83669f.tar.gz |
MFC r280238
Fix the root cause of the "vm_reserv_populate: reserv <address> is already
promoted" panics.
PR: 198163
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/vm_fault.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index dfbc2bd..4311fe8 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -101,6 +101,7 @@ __FBSDID("$FreeBSD$"); #include <vm/vm_kern.h> #include <vm/vm_pager.h> #include <vm/vm_extern.h> +#include <vm/vm_reserv.h> #define PFBAK 4 #define PFFOR 4 @@ -844,6 +845,14 @@ vnode_locked: unlock_and_deallocate(&fs); goto RetryFault; } +#if VM_NRESERVLEVEL > 0 + /* + * Rename the reservation. + */ + vm_reserv_rename(fs.m, fs.first_object, + fs.object, OFF_TO_IDX( + fs.first_object->backing_object_offset)); +#endif vm_page_xbusy(fs.m); fs.first_m = fs.m; fs.m = NULL; |