Re: [v3 PATCH] rhashtable: Still do rehash when we get EEXIST
From: David Miller
Date: Thu Mar 21 2019 - 16:58:19 EST
From: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 21 Mar 2019 09:39:52 +0800
> 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: da20420f83ea ("rhashtable: Add nested tables")
> Reported-by: Josh Elsasser <jelsasser@xxxxxxxxxxx>
> Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx>
Applied and queued up for -stable, thanks Herbert.