HomeFreeBSD

vm_fault_hold: handle vm_page_rename failure

Description

vm_fault_hold: handle vm_page_rename failure

On vm_page_rename failure, fix a missing object unlock and a double free of
a page.

First remove the old page, then rename into other page into first_object,
then free the old page. This avoids the problem on rename failure. This is
a little ugly but seems to be the most straightforward solution.

Tested with:

$ sysctl debug.fail_point.uma_zalloc_arg="1%return"
$ kyua test -k /usr/tests/sys/Kyuafile

Submitted by: Ryan Libby <rlibby@gmail.com>
Reviewed by: kib
Seen by: alc
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D4326

Details

Provenance
cemAuthored on
Reviewer
kib
Differential Revision
D4326: vm_fault_hold: handle vm_page_rename failure
Parents
rS291906: pmap_invalidate_range: For very large ranges, flush the whole TLB
Branches
Unknown
Tags
Unknown