vfs: remove LOOKUP_NO_AUTOMOUNT flag
That flag no longer makes sense, since we don't look up automount points as eagerly any more. Additionally, it turns out that the NO_AUTOMOUNT handling was buggy to begin with: it would avoid automounting even for cases where we really *needed* to do the automount handling, and could return ENOENT for autofs entries that hadn't been instantiated yet. With our new non-eager automount semantics, one discussion has been about adding a AT_AUTOMOUNT flag to vfs_fstatat (and thus the newfstatat() and fstatat64() system calls), but it's probably not worth it: you can always force at least directory automounting by simply adding the final '/' to the filename, which works for *all* of the stat family system calls, old and new. So AT_NO_AUTOMOUNT (and thus LOOKUP_NO_AUTOMOUNT) really were just a result of our bad default behavior. Acked-by: Ian Kent <raven@themaw.net> Acked-by: Trond Myklebust <Trond.Myklebust@netapp.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
815d405cef
commit
b6c8069d35
|
@ -721,12 +721,6 @@ static int follow_automount(struct path *path, unsigned flags,
|
|||
if (!path->dentry->d_op || !path->dentry->d_op->d_automount)
|
||||
return -EREMOTE;
|
||||
|
||||
/* We don't want to mount if someone supplied AT_NO_AUTOMOUNT
|
||||
* and this is the terminal part of the path.
|
||||
*/
|
||||
if ((flags & LOOKUP_NO_AUTOMOUNT) && !(flags & LOOKUP_PARENT))
|
||||
return -EISDIR; /* we actually want to stop here */
|
||||
|
||||
/* We don't want to mount if someone's just doing a stat -
|
||||
* unless they're stat'ing a directory and appended a '/' to
|
||||
* the name.
|
||||
|
|
|
@ -81,8 +81,6 @@ int vfs_fstatat(int dfd, const char __user *filename, struct kstat *stat,
|
|||
|
||||
if (!(flag & AT_SYMLINK_NOFOLLOW))
|
||||
lookup_flags |= LOOKUP_FOLLOW;
|
||||
if (flag & AT_NO_AUTOMOUNT)
|
||||
lookup_flags |= LOOKUP_NO_AUTOMOUNT;
|
||||
if (flag & AT_EMPTY_PATH)
|
||||
lookup_flags |= LOOKUP_EMPTY;
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND};
|
|||
#define LOOKUP_PARENT 0x0010
|
||||
#define LOOKUP_REVAL 0x0020
|
||||
#define LOOKUP_RCU 0x0040
|
||||
#define LOOKUP_NO_AUTOMOUNT 0x0080
|
||||
|
||||
/*
|
||||
* Intent data
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue