Re: [PATCH v2 2/3] netns: add netns_evict into netns_operations

From: David Miller
Date: Fri May 10 2019 - 18:14:59 EST


From: Wenbin Zeng <wenbin.zeng@xxxxxxxxx>
Date: Fri, 10 May 2019 14:36:02 +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>