Page MenuHomeFreeBSD

D42927.diff
No OneTemporary

D42927.diff

diff --git a/sys/net/vnet.c b/sys/net/vnet.c
--- a/sys/net/vnet.c
+++ b/sys/net/vnet.c
@@ -536,11 +536,13 @@
* Invoke the constructor on all the existing vnets when it is
* registered.
*/
+ VNET_LIST_RLOCK();
VNET_FOREACH(vnet) {
CURVNET_SET_QUIET(vnet);
vs->func(vs->arg);
CURVNET_RESTORE();
}
+ VNET_LIST_RUNLOCK();
VNET_SYSINIT_WUNLOCK();
}
@@ -592,6 +594,7 @@
* deregistered.
*/
VNET_SYSINIT_WLOCK();
+ VNET_LIST_RLOCK();
VNET_FOREACH(vnet) {
CURVNET_SET_QUIET(vnet);
vs->func(vs->arg);
@@ -601,6 +604,7 @@
/* Remove the destructor from the global list of vnet destructors. */
TAILQ_REMOVE(&vnet_destructors, vs, link);
VNET_SYSINIT_WUNLOCK();
+ VNET_LIST_RUNLOCK();
}
/*
diff --git a/sys/netinet/ip_reass.c b/sys/netinet/ip_reass.c
--- a/sys/netinet/ip_reass.c
+++ b/sys/netinet/ip_reass.c
@@ -661,11 +661,13 @@
{
VNET_ITERATOR_DECL(vnet_iter);
+ VNET_LIST_RLOCK();
VNET_FOREACH(vnet_iter) {
CURVNET_SET(vnet_iter);
ipreass_drain_vnet();
CURVNET_RESTORE();
}
+ VNET_LIST_RUNLOCK();
}

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 16, 7:26 AM (21 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14655180
Default Alt Text
D42927.diff (1 KB)

Event Timeline