svn commit: r327596 - head/sys/kern
Gleb Smirnoff
glebius at FreeBSD.org
Fri Jan 5 20:21:47 UTC 2018
Author: glebius
Date: Fri Jan 5 20:21:46 2018
New Revision: 327596
URL: https://svnweb.freebsd.org/changeset/base/327596
Log:
In sendfile_iodone() both pru_abort and sorele need to be executed
with proper VNET context set.
Reported by: sbruno
MFC after: 2 weeks
Modified:
head/sys/kern/kern_sendfile.c
Modified: head/sys/kern/kern_sendfile.c
==============================================================================
--- head/sys/kern/kern_sendfile.c Fri Jan 5 19:28:13 2018 (r327595)
+++ head/sys/kern/kern_sendfile.c Fri Jan 5 20:21:46 2018 (r327596)
@@ -273,6 +273,7 @@ sendfile_iodone(void *arg, vm_page_t *pg, int count, i
if (!refcount_release(&sfio->nios))
return;
+ CURVNET_SET(so->so_vnet);
if (sfio->error) {
struct mbuf *m;
@@ -293,15 +294,13 @@ sendfile_iodone(void *arg, vm_page_t *pg, int count, i
m = sfio->m;
for (int i = 0; i < sfio->npages; i++)
m = m_free(m);
- } else {
- CURVNET_SET(so->so_vnet);
+ } else
(void )(so->so_proto->pr_usrreqs->pru_ready)(so, sfio->m,
sfio->npages);
- CURVNET_RESTORE();
- }
SOCK_LOCK(so);
sorele(so);
+ CURVNET_RESTORE();
free(sfio, M_TEMP);
}
More information about the svn-src-head
mailing list