On Wed, 2009-06-17 at 16:54 -0700, Eric W. Biederman wrote:
quoted
Subject: net: make namespace iteration possible under RCU
We already call rcu_barrier(), so all we need to take
care of is using proper RCU list add/del primitives.
This of course gives you a network namespace that can be found by for_each_net rcu
while the per net exit functions are running. I think that opens up to races
that I don't want to think about.
Indeed. Can we move the rcu_barrier() up? Or we could insert a
synchronize_rcu() (which is sufficient for rcu_read_lock) before the
exit functions are run?
I still haven't tracked down how I am occasionally getting time wait sockets
with an invalid network namespace.
Ouch.
johannes