Re: [PATCH] radix-tree: fix radix_tree_iter_retry() for tagged iterators.

From: Ross Zwisler
Date: Mon Jul 18 2016 - 19:12:43 EST


On Fri, Jul 15, 2016 at 01:57:33PM -0700, Andrew Morton wrote:
> On Fri, 15 Jul 2016 13:00:40 -0600 Ross Zwisler <ross.zwisler@xxxxxxxxxxxxxxx> wrote:
>
> >
> > ...
> >
> > In looking at this more, I agree that your patch fixes this particular bug,
> > but I think that ultimately we might want something more general.
> >
> > ...
> >
> > --- a/include/linux/radix-tree.h
> > +++ b/include/linux/radix-tree.h
> > @@ -463,6 +463,9 @@ static inline struct radix_tree_node *entry_to_node(void *ptr)
> > static __always_inline void **
> > radix_tree_next_slot(void **slot, struct radix_tree_iter *iter, unsigned flags)
> > {
> > + if (unlikely(!slot))
> > + return NULL;
> > +
> > if (flags & RADIX_TREE_ITER_TAGGED) {
> > void *canon = slot;
>
> I'll hang onto Andrey's
> radix-tree-fix-radix_tree_iter_retry-for-tagged-iterators.patch for
> now, plan to send it in to Linus Wednesdayish. If we can get the above
> settled down prior to that then I shall swap over.

Sure, that works for me.