cvs commit: src/sys/vm vm_page.c
Alan Cox
alc at FreeBSD.org
Tue Jul 10 18:41:36 UTC 2007
alc 2007-07-10 18:41:34 UTC
FreeBSD src repository
Modified files:
sys/vm vm_page.c
Log:
Correct a problem in the ZERO_COPY_SOCKETS option, specifically, in
vm_page_cowfault(). Initially, if vm_page_cowfault() sleeps, the given
page is wired, preventing it from being recycled. However, when
transmission of the page completes, the page is unwired and returned to
the page queues. At that point, the page is not in any special state
that prevents it from being recycled. Consequently, vm_page_cowfault()
should verify that the page is still held by the same vm object before
retrying the replacement of the page. Note: The containing object is,
however, safe from being recycled by virtue of having a non-zero
paging-in-progress count.
While I'm here, add some assertions and comments.
Approved by: re (rwatson)
MFC After: 3 weeks
Revision Changes Path
1.351 +22 -2 src/sys/vm/vm_page.c
More information about the cvs-src
mailing list