Re: Linux 4.7-rc1
From: Al Viro
Date: Sun May 29 2016 - 13:22:27 EST
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.