Re: [PATCH 1/3] radix-tree: 'slot' can be NULL in radix_tree_next_slot()

From: Ross Zwisler
Date: Wed Aug 10 2016 - 14:31:43 EST


On Wed, Aug 10, 2016 at 09:29:23AM +0300, Konstantin Khlebnikov wrote:
> On Tue, Aug 9, 2016 at 6:27 PM, Ross Zwisler
> <ross.zwisler@xxxxxxxxxxxxxxx> wrote:
> > On Mon, Aug 08, 2016 at 10:21:39PM +0300, Konstantin Khlebnikov wrote:
> > <>
> >> NAK. This is fast path and it's already bloated.
> >> I want to revert most changes here and rework "multiorder" entries.
> >>
> >> Here you can find almost ready patchset for that
> >> https://github.com/koct9i/linux/commits/radix-tree
> >
> > Okay...are you okay with the second 2 patches in the series? They stand
> > alone, and I believe are both good to have.
>
> They looks good.

Cool, can I interpret that as an Acked-by for my v2? :)

> If you're worried about complicated paths - I'll add comment for
> *_next_slot() about that.

Yea, if we can document the exact ways in which we're protected from not
dereferencing a NULL 'slot', that would be great. I think it essentially
boils down to:

1) For tagged iteration, if 'slot' is NULL then iter->tags must be cleared
2) For non-tagged iteration, it 'slot' is NULL then
radix_tree_chunk_size(iter) must return 1 or less.