Re: [132/262] vfs pathname lookup: Add LOOKUP_AUTOMOUNT flag

From: Ian Kent
Date: Thu Nov 10 2011 - 03:30:47 EST


On Wed, 2011-11-09 at 13:27 -0800, Greg KH wrote:
> 3.0-stable review patch. If anyone has any objections, please let me know.

I was going to say we need commits
815d405ceff0d6964683f033e18b9b23a88fba87 and
b6c8069d3577481390b3f24a8434ad72a3235594 but I see those patches are
present in stable-queue repo along with
5c8a0fbba543d9428a486f0d1282bbcf3cf1d95a.

This last commit is, as Linux points out, open to question, although if
it was an autofs mount point that status is not really useful to the
user. OTOH for other fs (that use automounting) the status of the file
system containing the mount point might be useful but possibly
misleading. IMHO I'd include this commit as well.

>
> ------------------
>
>
> From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
>
> Since we've now turned around and made LOOKUP_FOLLOW *not* force an
> automount, we want to add the ability to force an automount event on
> lookup even if we don't happen to have one of the other flags that force
> it implicitly (LOOKUP_OPEN, LOOKUP_DIRECTORY, LOOKUP_PARENT..)
>
> Most cases will never want to use this, since you'd normally want to
> delay automounting as long as possible, which usually implies
> LOOKUP_OPEN (when we open a file or directory, we really cannot avoid
> the automount any more).
>
> But Trond argued sufficiently forcefully that at a minimum bind mounting
> a file and quotactl will want to force the automount lookup. Some other
> cases (like nfs_follow_remote_path()) could use it too, although
> LOOKUP_DIRECTORY would work there as well.
>
> This commit just adds the flag and logic, no users yet, though. It also
> doesn't actually touch the LOOKUP_NO_AUTOMOUNT flag that is related, and
> was made irrelevant by the same change that made us not follow on
> LOOKUP_FOLLOW.
>
> Cc: Trond Myklebust <Trond.Myklebust@xxxxxxxxxx>
> Cc: Ian Kent <raven@xxxxxxxxxx>
> Cc: Jeff Layton <jlayton@xxxxxxxxxx>
> Cc: Miklos Szeredi <miklos@xxxxxxxxxx>
> Cc: David Howells <dhowells@xxxxxxxxxx>
> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxx>
> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxx>
>
> ---
> fs/namei.c | 2 +-
> include/linux/namei.h | 1 +
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -793,7 +793,7 @@ static int follow_automount(struct path
> * of the daemon to instantiate them before they can be used.
> */
> if (!(flags & (LOOKUP_CONTINUE | LOOKUP_DIRECTORY |
> - LOOKUP_OPEN | LOOKUP_CREATE)) &&
> + LOOKUP_OPEN | LOOKUP_CREATE | LOOKUP_AUTOMOUNT)) &&
> path->dentry->d_inode)
> return -EISDIR;
>
> --- a/include/linux/namei.h
> +++ b/include/linux/namei.h
> @@ -49,6 +49,7 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LA
> #define LOOKUP_FOLLOW 0x0001
> #define LOOKUP_DIRECTORY 0x0002
> #define LOOKUP_CONTINUE 0x0004
> +#define LOOKUP_AUTOMOUNT 0x0008
>
> #define LOOKUP_PARENT 0x0010
> #define LOOKUP_REVAL 0x0020
>
>


--
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/