summaryrefslogtreecommitdiffstats
path: root/sys/kern/sys_socket.c
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2013-09-05 12:54:40 +0000
committerkib <kib@FreeBSD.org>2013-09-05 12:54:40 +0000
commit7ab18d4990d80767c250514df82b25bd076c5801 (patch)
tree138dc3860ef9530acb37af4e45319255e4607094 /sys/kern/sys_socket.c
parent795da63f42e0a9f2beb0ea81351fc839f169fa6e (diff)
downloadFreeBSD-src-7ab18d4990d80767c250514df82b25bd076c5801.zip
FreeBSD-src-7ab18d4990d80767c250514df82b25bd076c5801.tar.gz
The vm_page_trysbusy() should not fail when shared busy counter or
VPB_BIT_WAITERS flag were changed between reading of busy_lock and the cas. The vm_page_sbusy(), which is the only user of vm_page_trysbusy() in the tree, panics on the failure, which in these cases is transient and do not mean that the current page state prevents sbusying. Retry the operation inside vm_page_trysbusy() if cas failed, only return a failure when VPB_BIT_SHARED is cleared. Reported and tested by: pho Reviewed by: attilio Sponsored by: The FreeBSD Foundation
Diffstat (limited to 'sys/kern/sys_socket.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud