From: Wenbin Zeng <wenbin.zeng@xxxxxxxxx> Date: Wed, 1 May 2019 14:42:24 +0800 > The newly added netns_evict() shall be called when the netns inode being > evicted. It provides another path to release netns refcounts, previously > netns_put() is the only choice, but it is not able to release all netns > refcount, for example, a rpc client holds two netns refcounts, these > refcounts are supposed to be released when the rpc client is freed, but > the code to free rpc client is normally triggered by put() callback only > when netns refcount gets to 0, specifically: > refcount=0 -> cleanup_net() -> ops_exit_list -> free rpc client > But netns refcount will never get to 0 before rpc client gets freed, to > break the deadlock, the code to free rpc client can be put into the newly > added netns_evict. > > Signed-off-by: Wenbin Zeng <wenbinzeng@xxxxxxxxxxx> Acked-by: David S. Miller <davem@xxxxxxxxxxxxx>