Message ID | 57434f22bee01ecfec77d3ce318c6b2ee0dea542.1423097592.git.tgraf@suug.ch |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
diff --git a/lib/rhashtable.c b/lib/rhashtable.c index cea4244..fd1033d 100644 --- a/lib/rhashtable.c +++ b/lib/rhashtable.c @@ -392,6 +392,8 @@ int rhashtable_expand(struct rhashtable *ht) } } + synchronize_rcu(); + bucket_table_free(old_tbl); return 0; }
We need to wait for all RCU readers to complete after the last bit of unzipping has been completed. Otherwise the old table is freed up prematurely. Fixes: 7e1e77636e36 ("lib: Resizable, Scalable, Concurrent Hash Table") Signed-off-by: Thomas Graf <tgraf@suug.ch> --- lib/rhashtable.c | 2 ++ 1 file changed, 2 insertions(+)