rhashtable: Extend RCU read lock into rhashtable_insert_rehash()
authorThomas Graf <tgraf@suug.ch>
Tue, 24 Mar 2015 13:18:16 +0000 (14:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2015 21:48:39 +0000 (17:48 -0400)
rhashtable_insert_rehash() requires RCU locks to be held in order
to access ht->tbl and traverse to the last table.

Fixes: ccd57b1bd324 ("rhashtable: Add immediate rehash during insertion")
Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/rhashtable.h

index d7be9cb0e91f38fec24cb7c5b550738642846995..5976ab59b88ff4da10eaedaf03899d57b17b1662 100644 (file)
@@ -585,8 +585,8 @@ restart:
        if (unlikely(rht_grow_above_100(ht, tbl))) {
 slow_path:
                spin_unlock_bh(lock);
-               rcu_read_unlock();
                err = rhashtable_insert_rehash(ht);
+               rcu_read_unlock();
                if (err)
                        return err;