VFS: Fix the remaining automounter semantics regressions

The concensus seems to be that system calls such as stat() etc should
not trigger an automount. Neither should the l* versions.

This patch therefore adds a LOOKUP_AUTOMOUNT flag to tag those lookups
that _should_ trigger an automount on the last path element.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
[ Edited to leave out the cases that are already covered by LOOKUP_OPEN,
LOOKUP_DIRECTORY and LOOKUP_CREATE - all of which also fundamentally
force automounting for their own reasons - Linus ]
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by Trond Myklebust and committed by Linus Torvalds 815d405c d94c177b

Changed files
+3 -3
fs
+1 -1
fs/namespace.c
··· 1757 1757 return err; 1758 1758 if (!old_name || !*old_name) 1759 1759 return -EINVAL; 1760 - err = kern_path(old_name, LOOKUP_FOLLOW, &old_path); 1760 + err = kern_path(old_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path); 1761 1761 if (err) 1762 1762 return err; 1763 1763
+1 -1
fs/nfs/super.c
··· 2798 2798 goto out_put_mnt_ns; 2799 2799 2800 2800 ret = vfs_path_lookup(root_mnt->mnt_root, root_mnt, 2801 - export_path, LOOKUP_FOLLOW, &path); 2801 + export_path, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &path); 2802 2802 2803 2803 nfs_referral_loop_unprotect(); 2804 2804 put_mnt_ns(ns_private);
+1 -1
fs/quota/quota.c
··· 355 355 * resolution (think about autofs) and thus deadlocks could arise. 356 356 */ 357 357 if (cmds == Q_QUOTAON) { 358 - ret = user_path_at(AT_FDCWD, addr, LOOKUP_FOLLOW, &path); 358 + ret = user_path_at(AT_FDCWD, addr, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &path); 359 359 if (ret) 360 360 pathp = ERR_PTR(ret); 361 361 else