rhashtable: Fix rhashtable_try_insert test
The test on whether rhashtable_insert_one did an insertion relies on the value returned by rhashtable_lookup_one. Unfortunately that value is overwritten after rhashtable_insert_one returns. Fix this by moving the test before data gets overwritten. Simplify the test as only data == NULL matters. Finally move atomic_inc back within the lock as otherwise it may be reordered with the atomic_dec on the removal side, potentially leading to an underflow. Reported-by:Michael Kelley <mhklinux@outlook.com> Fixes: e1d3422c ("rhashtable: Fix potential deadlock by moving schedule_work outside lock") Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au> Tested-by:
Michael Kelley <mhklinux@outlook.com> Reviewed-by:
Breno Leitao <leitao@debian.org> Tested-by:
Mikhail Zaslonko <zaslonko@linux.ibm.com> Signed-off-by:
Herbert Xu <herbert@gondor.apana.org.au>
Loading
Please sign in to comment