[PATCH] vfs: Partially revert addition of cred override in follow_automount()

David Howells dhowells at redhat.com
Wed Feb 22 07:17:55 PST 2017


David Howells <dhowells at redhat.com> wrote:

> The following commit:
> 
> 	commit aeaa4a79ff6a5ed912b7362f206cf8576fca538b
> 	Author: Eric W. Biederman <ebiederm at xmission.com>
> 	Date:   Sat Jul 23 11:20:44 2016 -0500
> 	fs: Call d_automount with the filesystems creds
> 
> brackets the call to ->d_automount() with override_creds() and
> revert_creds(), setting the initial credentials for use whilst
> automounting.
> 
> This, however, breaks AFS as it's no longer able to access the calling
> process's keyrings to read the destination on a mountpoint.  This has gone
> unnoticed till now because, to this point, stat'ing or validating the inode
> caused the body of the mountpoint to be read into the pagecache (so that we
> could determine whether what we were looking at was really a mountpoint).
> 
> However, the page containing the mountpoint destination is merely *cached*
> and not pinned.  If it gets discarded and we try to read it in d_automount,
> we may fail because we have no authentication tokens available.
> 
> So, for the moment, revert the addition of override_creds() and
> revert_creds() and their variable.
> 
> Fixes: aeaa4a79ff6a ("fs: Call d_automount with the filesystems creds")
> Signed-off-by: David Howells <dhowells at redhat.com>
> cc: Seth Forshee <seth.forshee at canonical.com>
> cc: "Eric W. Biederman" <ebiederm at xmission.com>
> cc: Al Viro <viro at ZenIV.linux.org.uk>

This is also resolved by:

	https://git.kernel.org/cgit/linux/kernel/git/ebiederm/user-namespace.git/commit/?h=for-next&id=93faccbbfa958a9668d3ab4e30f38dd205cee8d8

David



More information about the linux-afs mailing list