diff options
author | cem <cem@FreeBSD.org> | 2015-12-06 17:46:12 +0000 |
---|---|---|
committer | cem <cem@FreeBSD.org> | 2015-12-06 17:46:12 +0000 |
commit | f219735807f38491816a4b79ade073656db95a54 (patch) | |
tree | c0e882f40b858dc3707a76014c69dbe4c2a0dc59 /sbin | |
parent | a15dada94bf633f34d63b4206062a0168ffd6e1b (diff) | |
download | FreeBSD-src-f219735807f38491816a4b79ade073656db95a54.zip FreeBSD-src-f219735807f38491816a4b79ade073656db95a54.tar.gz |
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
Diffstat (limited to 'sbin')
0 files changed, 0 insertions, 0 deletions