rhashtable: Fix potential crash on destroy in rhashtable_shrink
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 3 Feb 2015 20:33:22 +0000 (07:33 +1100)
committerDavid S. Miller <davem@davemloft.net>
Thu, 5 Feb 2015 04:34:52 +0000 (20:34 -0800)
commit28134a53d624ae7e90fff8500b25b3add4d40b92
treef919a71660f25f7d50c927df06df0d265cff2524
parent9b55669c14212f89dba39a2d8e00c1ec1d44c1ec
rhashtable: Fix potential crash on destroy in rhashtable_shrink

The current being_destroyed check in rhashtable_expand is not
enough since if we start a shrinking process after freeing all
elements in the table that's also going to crash.

This patch adds a being_destroyed check to the deferred worker
thread so that we bail out as soon as we take the lock.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
lib/rhashtable.c