Re: [PATCH net-next 1/5] rhashtable: Don't reset walker table in rhashtable_walk_start
From: Herbert Xu <herbert@gondor.apana.org.au>
Date: 2017-12-01 22:18:19
On Thu, Nov 30, 2017 at 04:03:01PM -0800, Tom Herbert wrote:
Remove the code that resets the walker table. The walker table should only be initialized in the walk init function or when a future table is encountered. If the walker table is NULL this is the indication that the walk has completed and this information can be used to break a multi-call walk in the table (e.g. successive calls to nelink_dump that are dumping elements of an rhashtable). This also allows us to change rhashtable_walk_start to return void since the only error it was returning was -EAGAIN for a table change. This patch changes all the callers of rhashtable_walk_start to expect void which eliminates logic needed to check the return value for a rare condition. Note that -EAGAIN will be returned in a call to rhashtable_walk_next which seems to always follow the start of the walk so there should be no behavioral change in doing this. Signed-off-by: Tom Herbert <redacted>
Doesn't this mean that if a walk encounters a rehash you may end up missing half or more of the hash table? Cheers, -- Email: Herbert Xu [off-list ref] Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt