fs: Avoid userspace mounting anon_inodefs filesystem
authorJan Kara <jack@suse.cz>
Tue, 25 Mar 2014 20:37:09 +0000 (21:37 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 26 Mar 2014 00:42:16 +0000 (17:42 -0700)
commitd6f2589ad561aa5fa39f347eca6942668b7560a1
tree48708ad51abdeed29c5787350f0f2a378297754d
parent632b06aa2842b12c6d6a510ec080fb6ebdb38ea5
fs: Avoid userspace mounting anon_inodefs filesystem

anon_inodefs filesystem is a kernel internal filesystem userspace
shouldn't mess with. Remove registration of it so userspace cannot
even try to mount it (which would fail anyway because the filesystem is
MS_NOUSER).

This fixes an oops triggered by trinity when it tried mounting
anon_inodefs which overwrote anon_inode_inode pointer while other CPU
has been in anon_inode_getfile() between ihold() and d_instantiate().
Thus effectively creating dentry pointing to an inode without holding a
reference to it.

Reported-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/anon_inodes.c