[git pull] work.sane_pwd

From: Al Viro
Date: Thu May 11 2017 - 21:14:54 EST


Making sure that something like a referral point won't end up
as pwd or root. The main part is the last commit (fixing mntns_install());
that one fixes a hard-to-hit race. fchdir() one is making fchdir(2)
a bit more robust - it should be impossible to get opened files (even
O_PATH ones) for referral points in the first place, so the existing
checks are OK, but checking the same thing as in chdir(2) is just as
cheap. path_init() commit removes a redundant check that shouldn't
have been there in the first place.

The following changes since commit 85128b2be6738fe36c224995c5ee80fe80fbb1b5:

fix nfs O_DIRECT advancing iov_iter too much (2017-04-17 14:23:20 -0400)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git work.sane_pwd

for you to fetch changes up to 4f757f3cbf54edef7b75c68d6d6d2f1a0ca08d2e:

make sure that mntns_install() doesn't end up with referral for root (2017-04-21 14:05:36 -0400)

----------------------------------------------------------------
Al Viro (3):
make sure that fchdir() won't accept referral points, etc.
path_init(): don't bother with checking MAY_EXEC for LOOKUP_ROOT
make sure that mntns_install() doesn't end up with referral for root

fs/namei.c | 48 ++++++++++++++++++++++++++++++++++++++++--------
fs/namespace.c | 18 +++++++++++-------
fs/open.c | 9 +++------
include/linux/namei.h | 1 +
4 files changed, 55 insertions(+), 21 deletions(-)