On Sun, May 29, 2016 at 10:00:25AM -0700, Linus Torvalds wrote:

> Anyway, enough blathering. Go out and test. And in particular, if
> you're a low-level filesystem person, or involved in other ways in
> path component lookup (security layer etc), go check that everything
> looks ok, and if your filesystem isn't one that does parallel lookups
> or readdirs yet (because locking issues), take a look at that too.

Um...  Unlike readdir, which is an opt-in precisely because more state
is involved, lookups are *not* - they are not even opt-out.  They are
done in parallel with each other, period.  Out-of-tree filesystems will
need to audit their ->lookup() instances, of course, but everything
in-tree should be finished in that respect.

lookup/lookup has only one kind of exclusion - no lookups on the same name
in the same directory happening in parallel.  lookup/(directory modifiers) is
still there, of course.  So is readdir/modifiers and modifiers/modifiers.
What is fs-dependent (for now) is lookup/readdir and readdir/readdir.
The latter has per-struct-file exclusion in all cases; if we are using
->iterate_shared(), that's all there is.  If ->iterate() is still being
used, we get lookup/readdir and readdir/readdir exclusion, as we used to.

Reply via email to