On Wed, Nov 1, 2017 at 10:23 AM, Cong Wang <xiyou.wangc...@gmail.com> wrote: > TC actions have been destroyed asynchronously for a long time, > previously in a RCU callback and now in a workqueue. If we > don't hold a refcnt for its netns, we could use the per netns > data structure, struct tcf_idrinfo, after it has been freed by > netns workqueue. > > Hold refcnt to ensure netns destroy happens after all actions > are gone.
This in fact is wrong. If we hold that refcnt, the netns can never be destroyed until all actions are destroyed by user, this breaks our netns design. I am going to send a revert and a right way to fix it. It is more complicated that I thought due to all of these flying RCU callbacks and workqueue again, sigh... Sorry about it.