Herbert Xu d23e43658a tun: Fix device unregister race
It is currently possible for an asynchronous device unregister
to cause the same tun device to be unregistered twice.  This
is because the unregister in tun_chr_close only checks whether
__tun_get(tfile) != NULL.  This however has nothing to do with
whether the device has already been unregistered.  All it tells
you is whether __tun_detach has been called.

This patch fixes this by using the most obvious thing to test
whether the device has been unregistered.

It also moves __tun_detach outside of rtnl_unlock since nothing
that it does requires that lock.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
2009-07-05 18:03:18 -07:00
..
2009-06-23 01:54:30 -04:00
2009-06-21 22:48:03 -07:00
2009-07-02 13:16:46 -07:00
2009-06-22 10:12:37 +01:00
2009-06-20 18:39:43 +00:00
2009-06-22 16:56:22 -07:00
2009-07-05 18:03:18 -07:00
2009-06-19 16:46:05 -07:00