HomeFreeBSD

Fix a long standing bug that was made worse in r355765. When we are cowing a

Description

Fix a long standing bug that was made worse in r355765. When we are cowing a
page that was previously mapped read-only it exists in pmap until pmap_enter()
returns. However, we held no reference to the original page after the copy
was complete. This allowed vm_object_scan_all_shadowed() to collapse an
object that still had pages mapped. To resolve this, add another page pointer
to the faultstate so we can keep the page xbusy until we're done with
pmap_enter(). Handle busy pages in scan_all_shadowed. This is already done
in vm_object_collapse_scan().

Reviewed by: kib, markj
Differential Revision: https://reviews.freebsd.org/D23155

Details

Provenance
jeffAuthored on
Reviewer
kib
Differential Revision
D23155: Fix bugs related to recent fault changes
Parents
rS356821: Small tweak to the default behavior of shutdown -c
Branches
Unknown
Tags
Unknown