]> git.baikalelectronics.ru Git - kernel.git/commit
rhashtable: future table needs to be traversed when remove an object
authorYing Xue <ying.xue@windriver.com>
Wed, 7 Jan 2015 05:41:55 +0000 (13:41 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Jan 2015 03:47:11 +0000 (19:47 -0800)
commitfe5a79365c9213942ca9dc9f43a4c487c19a77f7
tree1045ebbe9ecbd7ada7d610c0b8028440761593f6
parent4ca569b924ff804402ffb0e3eb53dee46ba7d2cf
rhashtable: future table needs to be traversed when remove an object

When remove an object from hash table, we currently only traverse old
bucket table to check whether the object exists. If the object is not
found in it, we will try again. But in the second search loop, we still
search the object from the old table instead of future table. As a
result, the object may be not removed from hash table especially when
resizing is currently in progress and the object is just saved in the
future table.

Signed-off-by: Ying Xue <ying.xue@windriver.com>
Cc: Thomas Graf <tgraf@suug.ch>
Acked-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
lib/rhashtable.c