Prevent accounting bug when an anon w/ swap slot is passed to uvm_anon_release()
authormpi <mpi@openbsd.org>
Sat, 6 Apr 2024 10:59:52 +0000 (10:59 +0000)
committermpi <mpi@openbsd.org>
Sat, 6 Apr 2024 10:59:52 +0000 (10:59 +0000)
commit3087914d56ff1d0b1369eb6710964ecd40f1ff8b
tree45ac40d322859db8dc607c2ef09a02341d5cdc3a
parentd64d6709ea3e6faf39b813d67bd0027c839bf682
Prevent accounting bug when an anon w/ swap slot is passed to uvm_anon_release()

uvm_anon_release() is always called for anon that have an associated page so
decrementing `uvmexp.swpgonly' is incorrect.  This happened because the page
was cleared before calling uvm_anfree().

Reported by many including mvs@, miod@ and robert@

ok kettenis@, miod@
sys/uvm/uvm_anon.c