On Tue, Jun 05 2018, Tom Herbert wrote: > On Mon, Jun 4, 2018 at 6:00 PM, NeilBrown wrote: > >> On Mon, Jun 04 2018, Tom Herbert wrote: >> >> >> >> >> Maybe a useful way forward would be for you to write documentation for >> >> the rhashtable_walk_peek() interface which correctly describes what it >> >> does and how it is used. Given that, I can implement that interface >> >> with the stability improvements that I'm working on. >> >> >> > >> > Here's how it's documented currently: >> > >> > "rhashtable_walk_peek - Return the next object but don't advance the >> iterator" >> > >> > I don't see what is incorrect about that. >> >> rhashtable_walk_next is documented: >> >> * rhashtable_walk_next - Return the next object and advance the iterator >> >> So it seems reasonable to assume that you get the same object, no matter >> which one you call. Yet this is not (necessarily) the case. >> >> >> > Peek returns the next object >> > in the walk, however does not move the iterator past that object, so >> > sucessive calls to peek return the same object. In other words it's a >> > way to inspect the next object but not "consume" it. This is what is >> > needed when netlink returns in the middle of a walk. The last object >> > retrieved from the table may not have been processed completely, so it >> > needs to be the first one processed on the next invocation to netlink. >> >> I completely agree with this last sentence. >> We typically need to process the last object retrieved. This could also >> be described as the previously retrieved object. >> So rhashtable_walk_last() and rhashtable_walk_prev() might both be >> suitable names, though each is open to misinterpretation. >> > > rhashtable_walk_last is better, but still could have the connotation that > it returns the last element in the list or table. How about > rhashtable_walk_last_seen or rhashtable_walk_last_iter? I'd be quite happy with rhashtable_walk_last_seen(). I also be happy to keep rhasthable_walk_peek() but to implement it as rhashtable_walk_last_seen() ?: rhashtable_walk_next() I'll send patches to that effect some time this week. Thanks, NeilBrown