linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Al Viro <viro@ZenIV.linux.org.uk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>,
	Christoph Hellwig <hch@infradead.org>, Neil Brown <neilb@suse.de>
Subject: Re: [RFC][PATCHSET v3] non-recursive pathname resolution & RCU symlinks
Date: Thu, 14 May 2015 04:30:40 +0100	[thread overview]
Message-ID: <20150514033040.GF7232@ZenIV.linux.org.uk> (raw)
In-Reply-To: <CA+55aFy+NNW1FcJj4Ka2d9u5uvEYOi8xfXH1JnOJ+LSbdtKO-g@mail.gmail.com>

On Wed, May 13, 2015 at 06:39:53PM -0700, Linus Torvalds wrote:
> On Wed, May 13, 2015 at 3:25 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
> >         More on top of the current vfs.git#for-next (== the posted patchset
> > with a couple of fixes): more fs/namei.c reorganization and stack footprint
> > reduction (below 1Kb now).  One interesting piece of that is that we don't
> > touch current->fs->lock anymore - unlazy_walk() used to, but now we can
> > get rid of that.
> 
> Ok. I don't see anything wrong here, but I have to admit that I'm also
> at the point where I go "maybe this area should calm down a bit", and
> where I'd prefer to not see more long patch-series. Even if most of
> the patches seem to be fairly mechanical code movement and cleanup and
> preparation, mistakes happen, and I just get worried.
> 
> So I think the series is good, but in particular if you're planning on
> some more core changes (ie your "act on filename" callback thing), I
> would really prefer that we stop at this point for the 4.2 window, and
> make sure it's all stable.

*nod*

It had been a fun three weeks, but at that point all low-hanging fruits
are gone.  There is more stuff visible there (lazy stat(), offloading
automounts via schedule_work(), perhaps RCU handling of non-fast symlinks),
but that'll take a lot more serious plotting[1] before it gets to the
stage when it can be implemented.  In particular, automounts will require
discussing what exactly in the process' state is used for those - both
with autofs/NFS/AFS/CIFS folks and with Eric (what netns should be used
when we are crossing an NFSv4 referral point?  Should it come from the
NFS mount we'd found the referral on, or from the process that has run
across it?  There'd been a series from Ian around the interplay of
autofs with namespaces, and IIRC it stepped into similar-sounding areas;
it'll need to be looked into, etc.)

I doubt that we'll get it sorted out before 4.2, and this kind of stuff
*does* need exposure in -testing, as well as public review, so such
continuations are clear 4.3 fodder.  I hope to get it figured out by the
time 4.3-rc1 comes, so that it could be dealt with early in the next cycle,
but for now I'm planning to pull the current #link_path_walk into #for-next
and let it soak there.  Especially since there are other pending piles of
joy elsewhere - handling of d_move()-messed vfsmounts, for starters ;-/

> And then your callback thing could be for 4.3.
>
> That said, I'm not entirely convinced about a callback approach for
> stat() and friends. I suspect only stat() is really critical enough to
> warrant the whole "let's do it all in RCU mode", and if there's only
> one case, then there's no need for the (*act) indirection - might as
> well hardcode it.

Maybe...  I'd like to see the profiles, TBH - especially getxattr() and
access() frequency on various loads.  Sure, make(1) and cc(1) really care
about stat() very much, but I wouldn't be surprised if something like
httpd or samba would be hitting getxattr() a lot...

> But feel free to convince me. Again, I'd really prefer that to be
> after the current work has been in a stable release and a well tested
> base, though.

No arguments here...

[1] as in "which shitpiles are we likely to step into on the way there and
how far would detours take us"

  reply	other threads:[~2015-05-14  3:30 UTC|newest]

Thread overview: 298+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-05  5:22 [RFC][PATCHSET] non-recursive pathname resolution Al Viro
2015-05-05  5:21 ` [PATCH 01/79] 9p: don't bother with 4K allocation for 24-byte local array Al Viro
2015-05-05  5:21 ` [PATCH 02/79] 9p: don't bother with __getname() in ->follow_link() Al Viro
2015-05-05  5:21 ` [PATCH 03/79] ovl: rearrange ovl_follow_link to it doesn't need to call ->put_link Al Viro
2015-05-05  5:21 ` [PATCH 04/79] ext4: split inode_operations for encrypted symlinks off the rest Al Viro
2015-05-05  9:10   ` Jan Kara
2015-05-05 15:01   ` Linus Torvalds
2015-05-05 15:10     ` Al Viro
2015-05-05  5:21 ` [PATCH 05/79] libfs: simple_follow_link() Al Viro
2015-05-05  9:20   ` Jan Kara
2015-05-05  5:21 ` [PATCH 06/79] ext2: use simple_follow_link() Al Viro
2015-05-05  9:17   ` Jan Kara
2015-05-05  5:21 ` [PATCH 07/79] befs: switch to simple_follow_link() Al Viro
2015-05-05  9:21   ` Jan Kara
2015-05-05  5:21 ` [PATCH 08/79] ext3: " Al Viro
2015-05-05  9:19   ` Jan Kara
2015-05-05  5:21 ` [PATCH 09/79] ext4: " Al Viro
2015-05-05  9:22   ` Jan Kara
2015-05-05  5:21 ` [PATCH 10/79] jffs2: " Al Viro
2015-05-05  5:21 ` [PATCH 11/79] shmem: " Al Viro
2015-05-05  9:24   ` Jan Kara
2015-05-05  5:21 ` [PATCH 12/79] debugfs: " Al Viro
2015-05-05  9:25   ` Jan Kara
2015-05-05  5:21 ` [PATCH 13/79] ufs: " Al Viro
2015-05-05  5:21 ` [PATCH 14/79] ubifs: " Al Viro
2015-05-05  5:21 ` [PATCH 15/79] sysv: " Al Viro
2015-05-05  5:21 ` [PATCH 16/79] jfs: " Al Viro
2015-05-05  9:27   ` Jan Kara
2015-05-06 13:39   ` Dave Kleikamp
2015-05-05  5:21 ` [PATCH 17/79] freevxfs: " Al Viro
2015-05-05  5:21 ` [PATCH 18/79] exofs: switch to {simple,page}_symlink_inode_operations Al Viro
2015-05-06  9:59   ` Boaz Harrosh
2015-05-05  5:21 ` [PATCH 19/79] ceph: switch to simple_follow_link() Al Viro
2015-05-05  5:21 ` [PATCH 20/79] logfs: fix a pagecache leak for symlinks Al Viro
2015-05-05  5:21 ` [PATCH 21/79] SECURITY: remove nameidata arg from inode_follow_link Al Viro
2015-05-05  5:21 ` [PATCH 22/79] uninline walk_component() Al Viro
2015-05-05  5:21 ` [PATCH 23/79] namei: take O_NOFOLLOW treatment into do_last() Al Viro
2015-05-05  5:21 ` [PATCH 24/79] do_last: kill symlink_ok Al Viro
2015-05-05  5:21 ` [PATCH 25/79] do_last: regularize the logics around following symlinks Al Viro
2015-05-05  5:22 ` [PATCH 26/79] namei: get rid of lookup_hash() Al Viro
2015-05-05  5:22 ` [PATCH 27/79] name: shift nameidata down into user_path_walk() Al Viro
2015-05-05  5:22 ` [PATCH 28/79] namei: lift nameidata into filename_mountpoint() Al Viro
2015-05-05  5:22 ` [PATCH 29/79] new ->follow_link() and ->put_link() calling conventions Al Viro
2015-05-05  5:22 ` [PATCH 30/79] namei.c: separate the parts of follow_link() that find the link body Al Viro
2015-05-05  5:22 ` [PATCH 31/79] namei: don't bother with ->follow_link() if ->i_link is set Al Viro
2015-05-05  5:22 ` [PATCH 32/79] namei: introduce nameidata->link Al Viro
2015-05-05  5:22 ` [PATCH 33/79] do_last: move path there from caller's stack frame Al Viro
2015-05-05  5:22 ` [PATCH 34/79] namei: expand nested_symlink() in its only caller Al Viro
2015-05-05  5:22 ` [PATCH 35/79] namei: expand the call of follow_link() in link_path_walk() Al Viro
2015-05-05  5:22 ` [PATCH 36/79] namei: move the calls of may_follow_link() into follow_link() Al Viro
2015-05-05  5:22 ` [PATCH 37/79] namei: rename follow_link to trailing_symlink, move it down Al Viro
2015-05-05  5:22 ` [PATCH 38/79] link_path_walk: handle get_link() returning ERR_PTR() immediately Al Viro
2015-05-05  5:22 ` [PATCH 39/79] link_path_walk: don't bother with walk_component() after jumping link Al Viro
2015-05-05  5:22 ` [PATCH 40/79] link_path_walk: turn inner loop into explicit goto Al Viro
2015-05-05 15:09   ` Linus Torvalds
2015-05-05 15:17     ` Al Viro
2015-05-05 15:21       ` Linus Torvalds
2015-05-05  5:22 ` [PATCH 41/79] link_path_walk: massage a bit more Al Viro
2015-05-05  5:22 ` [PATCH 42/79] link_path_walk: get rid of duplication Al Viro
2015-05-05 15:10   ` Linus Torvalds
2015-05-05  5:22 ` [PATCH 43/79] link_path_walk: final preparations to killing recursion Al Viro
2015-05-05  5:22 ` [PATCH 44/79] link_path_walk: kill the recursion Al Viro
2015-05-05  5:22 ` [PATCH 45/79] link_path_walk: split "return from recursive call" path Al Viro
2015-05-05  5:22 ` [PATCH 46/79] link_path_walk: cleanup - turn goto start; into continue; Al Viro
2015-05-05  5:22 ` [PATCH 47/79] namei: move link/cookie pairs into nameidata Al Viro
2015-05-06  2:42   ` NeilBrown
2015-05-06  7:22     ` Al Viro
2015-05-05  5:22 ` [PATCH 48/79] namei: trim redundant arguments of trailing_symlink() Al Viro
2015-05-05  5:22 ` [PATCH 49/79] namei: trim redundant arguments of fs/namei.c:put_link() Al Viro
2015-05-05  5:22 ` [PATCH 50/79] namei: trim the arguments of get_link() Al Viro
2015-05-05  5:22 ` [PATCH 51/79] namei: remove restrictions on nesting depth Al Viro
2015-05-06  2:55   ` NeilBrown
2015-05-06  7:24     ` Al Viro
2015-05-06 16:22       ` Al Viro
2015-05-05  5:22 ` [PATCH 52/79] link_path_walk: nd->depth massage, part 1 Al Viro
2015-05-05  5:22 ` [PATCH 53/79] link_path_walk: nd->depth massage, part 2 Al Viro
2015-05-05  5:22 ` [PATCH 54/79] link_path_walk: nd->depth massage, part 3 Al Viro
2015-05-05  5:22 ` [PATCH 55/79] link_path_walk: nd->depth massage, part 4 Al Viro
2015-05-05  5:22 ` [PATCH 56/79] trailing_symlink: nd->depth massage, part 5 Al Viro
2015-05-05  5:22 ` [PATCH 57/79] get_link: nd->depth massage, part 6 Al Viro
2015-05-05  5:22 ` [PATCH 58/79] trailing_symlink: nd->depth massage, part 7 Al Viro
2015-05-05  5:22 ` [PATCH 59/79] put_link: nd->depth massage, part 8 Al Viro
2015-05-05  5:22 ` [PATCH 60/79] link_path_walk: nd->depth massage, part 9 Al Viro
2015-05-05  5:22 ` [PATCH 61/79] link_path_walk: nd->depth massage, part 10 Al Viro
2015-05-05  5:22 ` [PATCH 62/79] link_path_walk: end of nd->depth massage Al Viro
2015-05-05  5:22 ` [PATCH 63/79] namei: we never need more than MAXSYMLINKS entries in nd->stack Al Viro
2015-05-05  5:22 ` [PATCH 64/79] namei: lift (open-coded) terminate_walk() in follow_dotdot_rcu() into callers Al Viro
2015-05-05  5:22 ` [PATCH 65/79] lift terminate_walk() into callers of walk_component() Al Viro
2015-05-05  5:22 ` [PATCH 66/79] namei: lift (open-coded) terminate_walk() into callers of get_link() Al Viro
2015-05-05  5:22 ` [PATCH 67/79] namei: take put_link() into {lookup,mountpoint,do}_last() Al Viro
2015-05-05  5:22 ` [PATCH 68/79] namei: have terminate_walk() do put_link() on everything left Al Viro
2015-05-05  5:22 ` [PATCH 69/79] link_path_walk: move the OK: inside the loop Al Viro
2015-05-05  5:22 ` [PATCH 70/79] namei: new calling conventions for walk_component() Al Viro
2015-05-05  5:22 ` [PATCH 71/79] namei: make should_follow_link() store the link in nd->link Al Viro
2015-05-05  5:22 ` [PATCH 72/79] namei: move link count check and stack allocation into pick_link() Al Viro
2015-05-05  5:22 ` [PATCH 73/79] lustre: rip the private symlink nesting limit out Al Viro
2015-05-05  5:22 ` [PATCH 74/79] VFS: replace {, total_}link_count in task_struct with pointer to nameidata Al Viro
2015-05-05  5:22 ` [PATCH 75/79] namei: simplify the callers of follow_managed() Al Viro
2015-05-05  5:22 ` [PATCH 76/79] don't pass nameidata to ->follow_link() Al Viro
2015-05-05  5:22 ` [PATCH 77/79] namei: move unlazying on symlinks towards get_link() call sites Al Viro
2015-05-05  5:22 ` [PATCH 78/79] namei: new helper - is_stale() Al Viro
2015-05-05  5:22 ` [PATCH 79/79] namei: stretch RCU mode into get_link() Al Viro
2015-05-05 15:20 ` [RFC][PATCHSET] non-recursive pathname resolution Linus Torvalds
2015-05-05 23:59   ` Al Viro
2015-05-10  5:45     ` Al Viro
2015-05-11 18:06 ` [RFC][PATCHSET v3] non-recursive pathname resolution & RCU symlinks Al Viro
2015-05-11 18:06   ` [PATCH v3 001/110] 9p: don't bother with 4K allocation for 24-byte local array Al Viro
2015-05-11 18:06   ` [PATCH v3 002/110] 9p: don't bother with __getname() in ->follow_link() Al Viro
2015-05-11 18:06   ` [PATCH v3 003/110] ovl: rearrange ovl_follow_link to it doesn't need to call ->put_link Al Viro
2015-05-11 18:06   ` [PATCH v3 004/110] ext4: split inode_operations for encrypted symlinks off the rest Al Viro
2015-05-11 18:20     ` Linus Torvalds
2015-05-11 18:06   ` [PATCH v3 005/110] libfs: simple_follow_link() Al Viro
2015-05-11 18:06   ` [PATCH v3 006/110] ext2: use simple_follow_link() Al Viro
2015-05-11 18:06   ` [PATCH v3 007/110] befs: switch to simple_follow_link() Al Viro
2015-05-11 18:06   ` [PATCH v3 008/110] ext3: " Al Viro
2015-05-11 18:06   ` [PATCH v3 009/110] ext4: " Al Viro
2015-05-11 18:06   ` [PATCH v3 010/110] jffs2: " Al Viro
2015-05-11 18:06   ` [PATCH v3 011/110] shmem: " Al Viro
2015-05-11 18:06   ` [PATCH v3 012/110] debugfs: " Al Viro
2015-05-11 18:06   ` [PATCH v3 013/110] ufs: " Al Viro
2015-05-11 18:06   ` [PATCH v3 014/110] ubifs: " Al Viro
2015-05-11 18:06   ` [PATCH v3 015/110] sysv: " Al Viro
2015-05-11 18:06   ` [PATCH v3 016/110] jfs: " Al Viro
2015-05-11 18:06   ` [PATCH v3 017/110] freevxfs: " Al Viro
2015-05-11 18:06   ` [PATCH v3 018/110] exofs: switch to {simple,page}_symlink_inode_operations Al Viro
2015-05-11 18:06   ` [PATCH v3 019/110] ceph: switch to simple_follow_link() Al Viro
2015-05-11 18:06   ` [PATCH v3 020/110] logfs: fix a pagecache leak for symlinks Al Viro
2015-05-11 18:06   ` [PATCH v3 021/110] SECURITY: remove nameidata arg from inode_follow_link Al Viro
2015-05-11 18:06   ` [PATCH v3 022/110] uninline walk_component() Al Viro
2015-05-11 18:06   ` [PATCH v3 023/110] namei: take O_NOFOLLOW treatment into do_last() Al Viro
2015-05-11 18:06   ` [PATCH v3 024/110] do_last: kill symlink_ok Al Viro
2015-05-11 18:06   ` [PATCH v3 025/110] do_last: regularize the logics around following symlinks Al Viro
2015-05-11 18:06   ` [PATCH v3 026/110] namei: get rid of lookup_hash() Al Viro
2015-05-11 18:06   ` [PATCH v3 027/110] name: shift nameidata down into user_path_walk() Al Viro
2015-05-11 18:06   ` [PATCH v3 028/110] namei: lift nameidata into filename_mountpoint() Al Viro
2015-05-11 18:06   ` [PATCH v3 029/110] new ->follow_link() and ->put_link() calling conventions Al Viro
2015-05-11 18:06   ` [PATCH v3 030/110] namei.c: separate the parts of follow_link() that find the link body Al Viro
2015-05-11 18:06   ` [PATCH v3 031/110] namei: don't bother with ->follow_link() if ->i_link is set Al Viro
2015-05-11 18:06   ` [PATCH v3 032/110] namei: introduce nameidata->link Al Viro
2015-05-11 18:06   ` [PATCH v3 033/110] do_last: move path there from caller's stack frame Al Viro
2015-05-11 18:06   ` [PATCH v3 034/110] namei: expand nested_symlink() in its only caller Al Viro
2015-05-11 18:06   ` [PATCH v3 035/110] namei: expand the call of follow_link() in link_path_walk() Al Viro
2015-05-11 18:06   ` [PATCH v3 036/110] namei: move the calls of may_follow_link() into follow_link() Al Viro
2015-05-11 18:06   ` [PATCH v3 037/110] namei: rename follow_link to trailing_symlink, move it down Al Viro
2015-05-11 18:06   ` [PATCH v3 038/110] link_path_walk: handle get_link() returning ERR_PTR() immediately Al Viro
2015-05-11 18:06   ` [PATCH v3 039/110] link_path_walk: don't bother with walk_component() after jumping link Al Viro
2015-05-11 18:07   ` [PATCH v3 040/110] link_path_walk: turn inner loop into explicit goto Al Viro
2015-05-11 18:07   ` [PATCH v3 041/110] link_path_walk: massage a bit more Al Viro
2015-05-11 18:07   ` [PATCH v3 042/110] link_path_walk: get rid of duplication Al Viro
2015-05-11 18:07   ` [PATCH v3 043/110] link_path_walk: final preparations to killing recursion Al Viro
2015-05-11 18:07   ` [PATCH v3 044/110] link_path_walk: kill the recursion Al Viro
2015-05-11 18:07   ` [PATCH v3 045/110] link_path_walk: split "return from recursive call" path Al Viro
2015-05-11 18:07   ` [PATCH v3 046/110] link_path_walk: cleanup - turn goto start; into continue; Al Viro
2015-05-11 18:07   ` [PATCH v3 047/110] namei: move link/cookie pairs into nameidata Al Viro
2015-05-11 18:07   ` [PATCH v3 048/110] namei: trim redundant arguments of trailing_symlink() Al Viro
2015-05-11 18:07   ` [PATCH v3 049/110] namei: trim redundant arguments of fs/namei.c:put_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 050/110] namei: trim the arguments of get_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 051/110] namei: remove restrictions on nesting depth Al Viro
2015-05-11 18:07   ` [PATCH v3 052/110] link_path_walk: nd->depth massage, part 1 Al Viro
2015-05-11 18:07   ` [PATCH v3 053/110] link_path_walk: nd->depth massage, part 2 Al Viro
2015-05-11 18:07   ` [PATCH v3 054/110] link_path_walk: nd->depth massage, part 3 Al Viro
2015-05-11 18:07   ` [PATCH v3 055/110] link_path_walk: nd->depth massage, part 4 Al Viro
2015-05-11 18:07   ` [PATCH v3 056/110] trailing_symlink: nd->depth massage, part 5 Al Viro
2015-05-11 18:07   ` [PATCH v3 057/110] get_link: nd->depth massage, part 6 Al Viro
2015-05-11 18:07   ` [PATCH v3 058/110] trailing_symlink: nd->depth massage, part 7 Al Viro
2015-05-11 18:07   ` [PATCH v3 059/110] put_link: nd->depth massage, part 8 Al Viro
2015-05-11 18:07   ` [PATCH v3 060/110] link_path_walk: nd->depth massage, part 9 Al Viro
2015-05-11 18:07   ` [PATCH v3 061/110] link_path_walk: nd->depth massage, part 10 Al Viro
2015-05-11 18:07   ` [PATCH v3 062/110] link_path_walk: end of nd->depth massage Al Viro
2015-05-11 18:07   ` [PATCH v3 063/110] namei: we never need more than MAXSYMLINKS entries in nd->stack Al Viro
2015-05-11 18:07   ` [PATCH v3 064/110] namei: lift (open-coded) terminate_walk() in follow_dotdot_rcu() into callers Al Viro
2015-05-11 18:07   ` [PATCH v3 065/110] lift terminate_walk() into callers of walk_component() Al Viro
2015-05-11 18:07   ` [PATCH v3 066/110] namei: lift (open-coded) terminate_walk() into callers of get_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 067/110] namei: take put_link() into {lookup,mountpoint,do}_last() Al Viro
2015-05-11 18:07   ` [PATCH v3 068/110] namei: have terminate_walk() do put_link() on everything left Al Viro
2015-05-11 18:07   ` [PATCH v3 069/110] link_path_walk: move the OK: inside the loop Al Viro
2015-05-11 18:07   ` [PATCH v3 070/110] namei: new calling conventions for walk_component() Al Viro
2015-05-11 18:07   ` [PATCH v3 071/110] namei: make should_follow_link() store the link in nd->link Al Viro
2015-05-11 18:07   ` [PATCH v3 072/110] namei: move link count check and stack allocation into pick_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 073/110] lustre: rip the private symlink nesting limit out Al Viro
2015-05-11 18:07   ` [PATCH v3 074/110] VFS: replace {, total_}link_count in task_struct with pointer to nameidata Al Viro
2015-05-14 23:21     ` Al Viro
2015-05-11 18:07   ` [PATCH v3 075/110] namei: simplify the callers of follow_managed() Al Viro
2015-05-11 18:07   ` [PATCH v3 076/110] don't pass nameidata to ->follow_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 077/110] namei: simplify failure exits in get_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 078/110] namei: simpler treatment of symlinks with nothing other that / in the body Al Viro
2015-05-11 18:07   ` [PATCH v3 079/110] namei: take the treatment of absolute symlinks to get_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 080/110] namei: fold put_link() into the failure case of complete_walk() Al Viro
2015-05-11 18:07   ` [PATCH v3 081/110] namei: move bumping the refcount of link->mnt into pick_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 082/110] may_follow_link(): trim arguments Al Viro
2015-05-11 18:07   ` [PATCH v3 083/110] namei: kill nd->link Al Viro
2015-05-11 18:07   ` [PATCH v3 084/110] namei: take increment of nd->depth into pick_link() Al Viro
2015-05-11 18:07   ` [PATCH v3 085/110] namei: may_follow_link() - lift terminate_walk() on failures into caller Al Viro
2015-05-11 18:07   ` [PATCH v3 086/110] namei: split off filename_lookupat() with LOOKUP_PARENT Al Viro
2015-05-11 18:07   ` [PATCH v3 087/110] namei: get rid of nameidata->base Al Viro
2015-05-11 18:07   ` [PATCH v3 088/110] namei: path_init() calling conventions change Al Viro
2015-05-11 18:07   ` [PATCH v3 089/110] namei: lift link_path_walk() call out of trailing_symlink() Al Viro
2015-05-11 18:07   ` [PATCH v3 090/110] namei: lift terminate_walk() all the way up Al Viro
2015-05-11 18:07   ` [PATCH v3 091/110] link_path_walk: use explicit returns for failure exits Al Viro
2015-05-11 18:07   ` [PATCH v3 092/110] namei: explicitly pass seq number to unlazy_walk() when dentry != NULL Al Viro
2015-05-11 18:07   ` [PATCH v3 093/110] namei: don't mangle nd->seq in lookup_fast() Al Viro
2015-05-11 18:07   ` [PATCH v3 094/110] namei: store inode in nd->stack[] Al Viro
2015-05-11 18:07   ` [PATCH v3 095/110] VFS: Handle lower layer dentry/inode in pathwalk Al Viro
2015-05-11 18:07   ` [PATCH v3 096/110] namei: pick_link() callers already have inode Al Viro
2015-05-11 18:07   ` [PATCH v3 097/110] security/selinux: pass 'flags' arg to avc_audit() and avc_has_perm_flags() Al Viro
2015-05-11 18:07   ` [PATCH v3 098/110] security: make inode_follow_link RCU-walk aware Al Viro
2015-05-11 18:07   ` [PATCH v3 099/110] switch ->put_link() from dentry to inode Al Viro
2015-05-11 18:08   ` [PATCH v3 100/110] new helper: free_page_put_link() Al Viro
2015-05-11 18:08   ` [PATCH v3 101/110] namei: make put_link() RCU-safe Al Viro
2015-05-11 18:08   ` [PATCH v3 102/110] namei: make may_follow_link() safe in RCU mode Al Viro
2015-05-11 18:08   ` [PATCH v3 103/110] new helper: __legitimize_mnt() Al Viro
2015-05-11 18:08   ` [PATCH v3 104/110] namei: store seq numbers in nd->stack[] Al Viro
2015-05-11 18:08   ` [PATCH v3 105/110] namei: make unlazy_walk and terminate_walk handle nd->stack, add unlazy_link Al Viro
2015-05-11 23:43     ` Al Viro
2015-05-12  4:10       ` Al Viro
2015-05-15  5:07         ` Al Viro
2015-05-11 18:08   ` [PATCH v3 106/110] namei: don't unlazy until get_link() Al Viro
2015-05-11 18:08   ` [PATCH v3 107/110] VFS/namei: make the use of touch_atime() in get_link() RCU-safe Al Viro
2015-05-11 18:08   ` [PATCH v3 108/110] enable passing fast relative symlinks without dropping out of RCU mode Al Viro
2015-05-11 18:08   ` [PATCH v3 109/110] namei: handle absolute " Al Viro
2015-05-15  5:11     ` Al Viro
2015-05-11 18:08   ` [PATCH v3 110/110] update Documentation/filesystems/ regarding the follow_link/put_link changes Al Viro
2015-05-13 22:25   ` [RFC][PATCHSET v3] non-recursive pathname resolution & RCU symlinks Al Viro
2015-05-13 22:25     ` [PATCH 01/21] namei: unlazy_walk() doesn't need to mess with current->fs anymore Al Viro
2015-05-13 22:25     ` [PATCH 02/21] lustre: kill unused macro (LOOKUP_CONTINUE) Al Viro
2015-05-13 22:25     ` [PATCH 03/21] lustre: kill unused helper Al Viro
2015-05-13 22:25     ` [PATCH 04/21] get rid of assorted nameidata-related debris Al Viro
2015-05-13 22:25     ` [PATCH 05/21] Documentation: remove outdated information from automount-support.txt Al Viro
2015-05-13 22:26     ` [PATCH 06/21] namei: be careful with mountpoint crossings in follow_dotdot_rcu() Al Viro
2015-05-13 22:26     ` [PATCH 07/21] namei: uninline set_root{,_rcu}() Al Viro
2015-05-13 22:26     ` [PATCH 08/21] namei: pass the struct path to store the result down into path_lookupat() Al Viro
2015-05-13 22:26     ` [PATCH 09/21] namei: move putname() call into filename_lookup() Al Viro
2015-05-13 22:26     ` [PATCH 10/21] namei: shift nameidata inside filename_lookup() Al Viro
2015-05-13 22:26     ` [PATCH 11/21] namei: make filename_lookup() reject ERR_PTR() passed as name Al Viro
2015-05-13 22:26     ` [PATCH 12/21] namei: shift nameidata down into filename_parentat() Al Viro
2015-05-13 22:26     ` [PATCH 13/21] namei: saner calling conventions for filename_create() Al Viro
2015-05-13 22:26     ` [PATCH 14/21] namei: saner calling conventions for filename_parentat() Al Viro
2015-05-13 22:26     ` [PATCH 15/21] namei: fold path_cleanup() into terminate_walk() Al Viro
2015-05-13 22:26     ` [PATCH 16/21] namei: stash dfd and name into nameidata Al Viro
2015-05-13 22:26     ` [PATCH 17/21] namei: trim do_last() arguments Al Viro
2015-05-13 22:26     ` [PATCH 18/21] inline user_path_parent() Al Viro
2015-05-13 22:26     ` [PATCH 19/21] inline user_path_create() Al Viro
2015-05-13 22:26     ` [PATCH 20/21] namei: move saved_nd pointer into struct nameidata Al Viro
2015-05-13 22:26     ` [PATCH 21/21] turn user_{path_at,path,lpath,path_dir}() into static inlines Al Viro
2015-05-14  1:39     ` [RFC][PATCHSET v3] non-recursive pathname resolution & RCU symlinks Linus Torvalds
2015-05-14  3:30       ` Al Viro [this message]
2015-05-14  3:52         ` Linus Torvalds
2015-05-14 11:23           ` Dave Chinner
2015-05-14 12:46             ` Jan Kara
2015-05-14 15:51             ` Linus Torvalds
2015-05-14 17:02               ` Linus Torvalds
2015-05-15 23:38               ` Dave Chinner
2015-05-16  0:10                 ` Al Viro
2015-05-16  0:20                   ` Al Viro
2015-05-16  1:23                 ` Linus Torvalds
2015-05-15 21:15             ` Andreas Dilger
2015-05-15 23:30               ` NeilBrown
2015-05-15 23:49                 ` Al Viro
2015-05-16  0:45                 ` Linus Torvalds
2015-05-16  1:25                   ` NeilBrown
2015-05-16  1:47                     ` Linus Torvalds
2015-05-16  1:55                       ` Al Viro
2015-05-16  2:23                         ` Linus Torvalds
2015-05-16  3:16                           ` Al Viro
     [not found]                             ` <CA+55aFzOcE7e=sOckb56KTs+WGutnL2_uum=pLD6Y+73t=EwOQ@mail.gmail.com>
2015-05-16  4:31                               ` Al Viro
2015-05-16 19:36                                 ` Linus Torvalds
2015-05-16  1:47                     ` Al Viro
2015-05-16  4:45                       ` NeilBrown
2015-05-16  5:46                         ` Al Viro
2015-05-16 14:18                           ` Al Viro
2015-05-17  3:12                             ` NeilBrown
2015-05-17  3:48                               ` Linus Torvalds
2015-05-17  4:04                                 ` Linus Torvalds
2015-05-17  4:47                                   ` NeilBrown
2015-05-17 10:55                                   ` Al Viro
2015-05-17 16:43                                     ` Linus Torvalds
2015-05-17 16:56                                       ` Linus Torvalds
2015-05-17 23:16                                       ` NeilBrown
2015-05-18  2:56                                         ` Linus Torvalds
2015-05-18  3:42                                           ` Al Viro
2015-05-18  4:20                                             ` Linus Torvalds
2015-05-19  8:33                                           ` NeilBrown
2015-05-17 23:39                                     ` NeilBrown
2015-05-18  0:10                                       ` Al Viro
2015-05-17  3:03                           ` NeilBrown
2015-05-16  1:38                   ` Al Viro
2015-05-15 23:39               ` Dave Chinner
2015-05-14 22:09           ` Jeremy Allison
2015-05-14 23:24             ` Linus Torvalds
2015-05-14 23:36               ` Al Viro
2015-05-15  0:25                 ` Linus Torvalds
2015-05-15  1:26                   ` Al Viro
2015-05-15  2:18                     ` Linus Torvalds
2015-05-15  2:51                       ` Al Viro
2015-05-15 18:30                         ` Linus Torvalds
2015-05-14 23:57               ` Jeremy Allison
2015-05-15 23:43                 ` Dave Chinner
2015-05-14 16:32         ` Eric W. Biederman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150514033040.GF7232@ZenIV.linux.org.uk \
    --to=viro@zeniv.linux.org.uk \
    --cc=hch@infradead.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=neilb@suse.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).