On Sat, Sep 21, 2019 at 7:07 AM Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote: > > FWIW, #next.dcache has the straight conversion to hlist. It definitely > wants at least nfsd, er... misconception dealt with, though: list_head > or hlist, this Well, yeah. But is there really any downside except for the warning? Looks like the code should just do if (!simple_positive(dentry)) continue; and just ignore non-positive dentries - whether cursors or negative ones (which may not happen, but still). > No "take cursors out of the list" parts yet. Looking at the commits, that "take it off the list" one seems very nice on its own. It actually seems to simplify the logic regardless of the whole "don't need to add it to the end".. Only this: if (next) list_move_tail(&cursor->d_child, &next->d_child); else list_del_init(&cursor->d_child); is a slight complication, and honestly, I think that should just have its own helper function there ("dcache_update_cursor(cursor, next)" or something). That helper function would end up meaning one less change in the hlist conversion too. The hlist conversion looks straightforward except for the list_move() conversions that I didn't then look at more to make sure that they are identical, but the ones I looked at looked sane. Linus