[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160529172213.GY14480@ZenIV.linux.org.uk>
Date: Sun, 29 May 2016 18:22:13 +0100
From: Al Viro <viro@...IV.linux.org.uk>
To: Linus Torvalds <torvalds@...ux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: Linux 4.7-rc1
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.
Powered by blists - more mailing lists