UPSTREAM: vfs: Convert anon_inodes to use the new mount API

Convert the anon_inodes filesystem to the new internal mount API as the old
one will be obsoleted and removed.  This allows greater flexibility in
communication of mount parameters between userspace, the VFS and the
filesystem.

See Documentation/filesystems/mount_api.txt for more information.

Change-Id: I8802dce800b28b7bffec4de5aa0dc818928e4389
Signed-off-by: David Howells <dhowells@redhat.com>
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
David Howells
2019-03-25 16:38:23 +00:00
committed by bengris32
parent b48237fdd1
commit d38dfb79a5

View File

@@ -20,6 +20,8 @@
#include <linux/magic.h>
#include <linux/anon_inodes.h>
#include <linux/security.h>
#include <linux/pseudo_fs.h>
#include <linux/uaccess.h>
static struct vfsmount *anon_inode_mnt __read_mostly;
@@ -38,16 +40,18 @@ static const struct dentry_operations anon_inodefs_dentry_operations = {
.d_dname = anon_inodefs_dname,
};
static struct dentry *anon_inodefs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data)
static int anon_inodefs_init_fs_context(struct fs_context *fc)
{
return mount_pseudo(fs_type, NULL, &anon_inodefs_dentry_operations,
ANON_INODE_FS_MAGIC);
struct pseudo_fs_context *ctx = init_pseudo(fc, ANON_INODE_FS_MAGIC);
if (!ctx)
return -ENOMEM;
ctx->dops = &anon_inodefs_dentry_operations;
return 0;
}
static struct file_system_type anon_inode_fs_type = {
.name = "anon_inodefs",
.mount = anon_inodefs_mount,
.init_fs_context = anon_inodefs_init_fs_context,
.kill_sb = kill_anon_super,
};