Re: [PATCH 5/6] vfs: reorganize do_lookup

From: Al Viro
Date: Tue Apr 03 2012 - 23:16:29 EST


On Tue, Apr 03, 2012 at 10:13:18AM +0200, Miklos Szeredi wrote:

> The do_last() reorganization in the atomic-open series needs to be split
> up, I realize. Do you have any other high level comments about that
> series?

Yes.
a) Please, pull removal of open-from-d_revalidate() as far in front
of the queue as possible, *along* *with* -EOPENSTALE stuff. Without the
latter the former is simply broken - we might have hit -ESTALE before and
LOOKUP_REVAL might have already been set, so just failing ->open() with
ESTALE may end up not repeating it.
TBH, had that thing been in front of the queue, I would've put
it into the last pull request; that particular idiocy (NFS4 doing open
from all methods involved, except for ->open()) had been a serious source
of annoyance for a long time. It really needs killing...

b) opendata is simply bogus. You need to pass caller-allocated
struct file in any case, right? So why not use it to pass what you
need to pass? We want to be able to tell "it's a symlink, here's the
vfsmount/dentry, now sod off and handle it yourself"? Sure, but struct
file *already* contains struct path and that's not something that might
disappear on future kernel changes ;-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/