[NET]: Clear dev refs in dst->child.
This is a resend of an earlier patch to dst_dev_event. I've changed it slightly by moving the input/output assignment into dst_ifdown. To recap, this patch drops lingering IPsec references to a device that is being unregistered. The child processing in the GC is too late since it never runs until the reference on the dst hits zero which could take a long time for things like TCP connections. The reason I've left the input/output assignment outside the loop is because they aren't really necessary for the IPsec dst's, and if it were in the loop then we'll have to do the same child processing in ___dst_free as well. I've tested this with an ESP/IPCOMP tunnel and I can confirm that it does fix the problem. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@redhat.com>
Showing
Please register or sign in to comment