Re: [PATCH 4/6] rhashtable: allow a walk of the hash table without missing objects.

From: NeilBrown
Date: Tue Mar 27 2018 - 17:50:50 EST


On Tue, Mar 27 2018, David Miller wrote:

> From: NeilBrown <neilb@xxxxxxxx>
> Date: Tue, 27 Mar 2018 10:33:04 +1100
>
>> In many cases where the walker needs to drop out of RCU protection,
>> it will take a reference to the object and this can prevent it from
>> being removed from the hash table. In those cases, the last-returned
>> object can still be used as a cursor. rhashtable cannot detect
>> these cases itself.
>
> Merely having an elevated reference count does not explicitly prevent
> the object from being removed from the hash table.
>
> This invariant might hold for the particular user of the rhashtable
> instance, but it is not always the case.

Agreed. Hence "In many case ... this *can* be prevented" and "In those
cases".

The doc comment for rhashtable_walk_start_continue() makes it clear
that:

* The
* previously returned object must still be in the hash table, and must be
* provided as an argument.

Thanks,
NeilBrown

Attachment: signature.asc
Description: PGP signature