Skip to content
Commit 408f13ef authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller
Browse files

rhashtable: Still do rehash when we get EEXIST



As it stands if a shrink is delayed because of an outstanding
rehash, we will go into a rescheduling loop without ever doing
the rehash.

This patch fixes this by still carrying out the rehash and then
rescheduling so that we can shrink after the completion of the
rehash should it still be necessary.

The return value of EEXIST captures this case and other cases
(e.g., another thread expanded/rehashed the table at the same
time) where we should still proceed with the rehash.

Fixes: da20420f ("rhashtable: Add nested tables")
Reported-by: default avatarJosh Elsasser <jelsasser@appneta.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Tested-by: default avatarJosh Elsasser <jelsasser@appneta.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 6b70fc94
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment