Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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: da20420 ("rhashtable: Add nested tables") Reported-by: Josh Elsasser <[email protected]> Signed-off-by: Herbert Xu <[email protected]> Tested-by: Josh Elsasser <[email protected]> Signed-off-by: David S. Miller <[email protected]>
- Loading branch information