Messages in this thread | | | From | NeilBrown <> | Date | Wed, 28 Mar 2018 08:50:31 +1100 | Subject | Re: [PATCH 4/6] rhashtable: allow a walk of the hash table without missing objects. |
| |
On Tue, Mar 27 2018, David Miller wrote:
> From: NeilBrown <neilb@suse.com> > 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 [unhandled content-type:application/pgp-signature] | |