提交 3c26ff6e 编写于 作者: A Al Viro

convert get_sb_nodev() users

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
上级 fc14f2fe
...@@ -14,16 +14,16 @@ ...@@ -14,16 +14,16 @@
#include <linux/init.h> #include <linux/init.h>
#include "autofs_i.h" #include "autofs_i.h"
static int autofs_get_sb(struct file_system_type *fs_type, static struct dentry *autofs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, autofs_fill_super, mnt); return mount_nodev(fs_type, flags, data, autofs_fill_super);
} }
static struct file_system_type autofs_fs_type = { static struct file_system_type autofs_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "autofs", .name = "autofs",
.get_sb = autofs_get_sb, .mount = autofs_mount,
.kill_sb = autofs_kill_sb, .kill_sb = autofs_kill_sb,
}; };
......
...@@ -1937,11 +1937,10 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent) ...@@ -1937,11 +1937,10 @@ static int pohmelfs_fill_super(struct super_block *sb, void *data, int silent)
/* /*
* Some VFS magic here... * Some VFS magic here...
*/ */
static int pohmelfs_get_sb(struct file_system_type *fs_type, static struct dentry *pohmelfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, pohmelfs_fill_super, return mount_nodev(fs_type, flags, data, pohmelfs_fill_super);
mnt);
} }
/* /*
...@@ -1958,7 +1957,7 @@ static void pohmelfs_kill_super(struct super_block *sb) ...@@ -1958,7 +1957,7 @@ static void pohmelfs_kill_super(struct super_block *sb)
static struct file_system_type pohmel_fs_type = { static struct file_system_type pohmel_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "pohmel", .name = "pohmel",
.get_sb = pohmelfs_get_sb, .mount = pohmelfs_mount,
.kill_sb = pohmelfs_kill_super, .kill_sb = pohmelfs_kill_super,
}; };
......
...@@ -793,16 +793,16 @@ smb_notify_change(struct dentry *dentry, struct iattr *attr) ...@@ -793,16 +793,16 @@ smb_notify_change(struct dentry *dentry, struct iattr *attr)
return error; return error;
} }
static int smb_get_sb(struct file_system_type *fs_type, static struct dentry *smb_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, smb_fill_super, mnt); return mount_nodev(fs_type, flags, data, smb_fill_super);
} }
static struct file_system_type smb_fs_type = { static struct file_system_type smb_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "smbfs", .name = "smbfs",
.get_sb = smb_get_sb, .mount = smb_mount,
.kill_sb = kill_anon_super, .kill_sb = kill_anon_super,
.fs_flags = FS_BINARY_MOUNTDATA, .fs_flags = FS_BINARY_MOUNTDATA,
}; };
......
...@@ -14,16 +14,16 @@ ...@@ -14,16 +14,16 @@
#include <linux/init.h> #include <linux/init.h>
#include "autofs_i.h" #include "autofs_i.h"
static int autofs_get_sb(struct file_system_type *fs_type, static struct dentry *autofs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, autofs4_fill_super, mnt); return mount_nodev(fs_type, flags, data, autofs4_fill_super);
} }
static struct file_system_type autofs_fs_type = { static struct file_system_type autofs_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "autofs", .name = "autofs",
.get_sb = autofs_get_sb, .mount = autofs_mount,
.kill_sb = autofs4_kill_sb, .kill_sb = autofs4_kill_sb,
}; };
......
...@@ -306,16 +306,16 @@ static int coda_statfs(struct dentry *dentry, struct kstatfs *buf) ...@@ -306,16 +306,16 @@ static int coda_statfs(struct dentry *dentry, struct kstatfs *buf)
/* init_coda: used by filesystems.c to register coda */ /* init_coda: used by filesystems.c to register coda */
static int coda_get_sb(struct file_system_type *fs_type, static struct dentry *coda_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, coda_fill_super, mnt); return mount_nodev(fs_type, flags, data, coda_fill_super);
} }
struct file_system_type coda_fs_type = { struct file_system_type coda_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "coda", .name = "coda",
.get_sb = coda_get_sb, .mount = coda_mount,
.kill_sb = kill_anon_super, .kill_sb = kill_anon_super,
.fs_flags = FS_BINARY_MOUNTDATA, .fs_flags = FS_BINARY_MOUNTDATA,
}; };
......
...@@ -659,19 +659,19 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent) ...@@ -659,19 +659,19 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
/* /*
* Set up the superblock (calls exofs_fill_super eventually) * Set up the superblock (calls exofs_fill_super eventually)
*/ */
static int exofs_get_sb(struct file_system_type *type, static struct dentry *exofs_mount(struct file_system_type *type,
int flags, const char *dev_name, int flags, const char *dev_name,
void *data, struct vfsmount *mnt) void *data)
{ {
struct exofs_mountopt opts; struct exofs_mountopt opts;
int ret; int ret;
ret = parse_options(data, &opts); ret = parse_options(data, &opts);
if (ret) if (ret)
return ret; return ERR_PTR(ret);
opts.dev_name = dev_name; opts.dev_name = dev_name;
return get_sb_nodev(type, flags, &opts, exofs_fill_super, mnt); return mount_nodev(type, flags, &opts, exofs_fill_super);
} }
/* /*
...@@ -809,7 +809,7 @@ static const struct export_operations exofs_export_ops = { ...@@ -809,7 +809,7 @@ static const struct export_operations exofs_export_ops = {
static struct file_system_type exofs_type = { static struct file_system_type exofs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "exofs", .name = "exofs",
.get_sb = exofs_get_sb, .mount = exofs_mount,
.kill_sb = generic_shutdown_super, .kill_sb = generic_shutdown_super,
}; };
......
...@@ -1041,11 +1041,11 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent) ...@@ -1041,11 +1041,11 @@ static int fuse_fill_super(struct super_block *sb, void *data, int silent)
return err; return err;
} }
static int fuse_get_sb(struct file_system_type *fs_type, static struct dentry *fuse_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, int flags, const char *dev_name,
void *raw_data, struct vfsmount *mnt) void *raw_data)
{ {
return get_sb_nodev(fs_type, flags, raw_data, fuse_fill_super, mnt); return mount_nodev(fs_type, flags, raw_data, fuse_fill_super);
} }
static void fuse_kill_sb_anon(struct super_block *sb) static void fuse_kill_sb_anon(struct super_block *sb)
...@@ -1065,7 +1065,7 @@ static struct file_system_type fuse_fs_type = { ...@@ -1065,7 +1065,7 @@ static struct file_system_type fuse_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "fuse", .name = "fuse",
.fs_flags = FS_HAS_SUBTYPE, .fs_flags = FS_HAS_SUBTYPE,
.get_sb = fuse_get_sb, .mount = fuse_mount,
.kill_sb = fuse_kill_sb_anon, .kill_sb = fuse_kill_sb_anon,
}; };
......
...@@ -962,11 +962,11 @@ static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent) ...@@ -962,11 +962,11 @@ static int hostfs_fill_sb_common(struct super_block *sb, void *d, int silent)
return err; return err;
} }
static int hostfs_read_sb(struct file_system_type *type, static struct dentry *hostfs_read_sb(struct file_system_type *type,
int flags, const char *dev_name, int flags, const char *dev_name,
void *data, struct vfsmount *mnt) void *data)
{ {
return get_sb_nodev(type, flags, data, hostfs_fill_sb_common, mnt); return mount_nodev(type, flags, data, hostfs_fill_sb_common);
} }
static void hostfs_kill_sb(struct super_block *s) static void hostfs_kill_sb(struct super_block *s)
...@@ -978,7 +978,7 @@ static void hostfs_kill_sb(struct super_block *s) ...@@ -978,7 +978,7 @@ static void hostfs_kill_sb(struct super_block *s)
static struct file_system_type hostfs_type = { static struct file_system_type hostfs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "hostfs", .name = "hostfs",
.get_sb = hostfs_read_sb, .mount = hostfs_read_sb,
.kill_sb = hostfs_kill_sb, .kill_sb = hostfs_kill_sb,
.fs_flags = 0, .fs_flags = 0,
}; };
......
...@@ -748,17 +748,17 @@ static int hppfs_fill_super(struct super_block *sb, void *d, int silent) ...@@ -748,17 +748,17 @@ static int hppfs_fill_super(struct super_block *sb, void *d, int silent)
return(err); return(err);
} }
static int hppfs_read_super(struct file_system_type *type, static struct dentry *hppfs_read_super(struct file_system_type *type,
int flags, const char *dev_name, int flags, const char *dev_name,
void *data, struct vfsmount *mnt) void *data)
{ {
return get_sb_nodev(type, flags, data, hppfs_fill_super, mnt); return mount_nodev(type, flags, data, hppfs_fill_super);
} }
static struct file_system_type hppfs_type = { static struct file_system_type hppfs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "hppfs", .name = "hppfs",
.get_sb = hppfs_read_super, .mount = hppfs_read_super,
.kill_sb = kill_anon_super, .kill_sb = kill_anon_super,
.fs_flags = 0, .fs_flags = 0,
}; };
......
...@@ -896,15 +896,15 @@ void hugetlb_put_quota(struct address_space *mapping, long delta) ...@@ -896,15 +896,15 @@ void hugetlb_put_quota(struct address_space *mapping, long delta)
} }
} }
static int hugetlbfs_get_sb(struct file_system_type *fs_type, static struct dentry *hugetlbfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, hugetlbfs_fill_super, mnt); return mount_nodev(fs_type, flags, data, hugetlbfs_fill_super);
} }
static struct file_system_type hugetlbfs_fs_type = { static struct file_system_type hugetlbfs_fs_type = {
.name = "hugetlbfs", .name = "hugetlbfs",
.get_sb = hugetlbfs_get_sb, .mount = hugetlbfs_mount,
.kill_sb = kill_litter_super, .kill_sb = kill_litter_super,
}; };
......
...@@ -1020,16 +1020,16 @@ int ncp_notify_change(struct dentry *dentry, struct iattr *attr) ...@@ -1020,16 +1020,16 @@ int ncp_notify_change(struct dentry *dentry, struct iattr *attr)
return result; return result;
} }
static int ncp_get_sb(struct file_system_type *fs_type, static struct dentry *ncp_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, ncp_fill_super, mnt); return mount_nodev(fs_type, flags, data, ncp_fill_super);
} }
static struct file_system_type ncp_fs_type = { static struct file_system_type ncp_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "ncpfs", .name = "ncpfs",
.get_sb = ncp_get_sb, .mount = ncp_mount,
.kill_sb = kill_anon_super, .kill_sb = kill_anon_super,
.fs_flags = FS_BINARY_MOUNTDATA, .fs_flags = FS_BINARY_MOUNTDATA,
}; };
......
...@@ -643,16 +643,16 @@ static const struct inode_operations dlmfs_file_inode_operations = { ...@@ -643,16 +643,16 @@ static const struct inode_operations dlmfs_file_inode_operations = {
.setattr = dlmfs_file_setattr, .setattr = dlmfs_file_setattr,
}; };
static int dlmfs_get_sb(struct file_system_type *fs_type, static struct dentry *dlmfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, dlmfs_fill_super, mnt); return mount_nodev(fs_type, flags, data, dlmfs_fill_super);
} }
static struct file_system_type dlmfs_fs_type = { static struct file_system_type dlmfs_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "ocfs2_dlmfs", .name = "ocfs2_dlmfs",
.get_sb = dlmfs_get_sb, .mount = dlmfs_mount,
.kill_sb = kill_litter_super, .kill_sb = kill_litter_super,
}; };
......
...@@ -255,17 +255,16 @@ int ramfs_fill_super(struct super_block *sb, void *data, int silent) ...@@ -255,17 +255,16 @@ int ramfs_fill_super(struct super_block *sb, void *data, int silent)
return err; return err;
} }
int ramfs_get_sb(struct file_system_type *fs_type, struct dentry *ramfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, ramfs_fill_super, mnt); return mount_nodev(fs_type, flags, data, ramfs_fill_super);
} }
static int rootfs_get_sb(struct file_system_type *fs_type, static struct dentry *rootfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags|MS_NOUSER, data, ramfs_fill_super, return mount_nodev(fs_type, flags|MS_NOUSER, data, ramfs_fill_super);
mnt);
} }
static void ramfs_kill_sb(struct super_block *sb) static void ramfs_kill_sb(struct super_block *sb)
...@@ -276,12 +275,12 @@ static void ramfs_kill_sb(struct super_block *sb) ...@@ -276,12 +275,12 @@ static void ramfs_kill_sb(struct super_block *sb)
static struct file_system_type ramfs_fs_type = { static struct file_system_type ramfs_fs_type = {
.name = "ramfs", .name = "ramfs",
.get_sb = ramfs_get_sb, .mount = ramfs_mount,
.kill_sb = ramfs_kill_sb, .kill_sb = ramfs_kill_sb,
}; };
static struct file_system_type rootfs_fs_type = { static struct file_system_type rootfs_fs_type = {
.name = "rootfs", .name = "rootfs",
.get_sb = rootfs_get_sb, .mount = rootfs_mount,
.kill_sb = kill_litter_super, .kill_sb = kill_litter_super,
}; };
......
...@@ -870,29 +870,42 @@ void kill_block_super(struct super_block *sb) ...@@ -870,29 +870,42 @@ void kill_block_super(struct super_block *sb)
EXPORT_SYMBOL(kill_block_super); EXPORT_SYMBOL(kill_block_super);
#endif #endif
int get_sb_nodev(struct file_system_type *fs_type, struct dentry *mount_nodev(struct file_system_type *fs_type,
int flags, void *data, int flags, void *data,
int (*fill_super)(struct super_block *, void *, int), int (*fill_super)(struct super_block *, void *, int))
struct vfsmount *mnt)
{ {
int error; int error;
struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL); struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL);
if (IS_ERR(s)) if (IS_ERR(s))
return PTR_ERR(s); return ERR_CAST(s);
s->s_flags = flags; s->s_flags = flags;
error = fill_super(s, data, flags & MS_SILENT ? 1 : 0); error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
if (error) { if (error) {
deactivate_locked_super(s); deactivate_locked_super(s);
return error; return ERR_PTR(error);
} }
s->s_flags |= MS_ACTIVE; s->s_flags |= MS_ACTIVE;
simple_set_mnt(mnt, s); return dget(s->s_root);
return 0;
} }
EXPORT_SYMBOL(mount_nodev);
int get_sb_nodev(struct file_system_type *fs_type,
int flags, void *data,
int (*fill_super)(struct super_block *, void *, int),
struct vfsmount *mnt)
{
struct dentry *root;
root = mount_nodev(fs_type, flags, data, fill_super);
if (IS_ERR(root))
return PTR_ERR(root);
mnt->mnt_root = root;
mnt->mnt_sb = root->d_sb;
return 0;
}
EXPORT_SYMBOL(get_sb_nodev); EXPORT_SYMBOL(get_sb_nodev);
static int compare_single(struct super_block *s, void *p) static int compare_single(struct super_block *s, void *p)
......
...@@ -1806,6 +1806,9 @@ extern int get_sb_single(struct file_system_type *fs_type, ...@@ -1806,6 +1806,9 @@ extern int get_sb_single(struct file_system_type *fs_type,
int flags, void *data, int flags, void *data,
int (*fill_super)(struct super_block *, void *, int), int (*fill_super)(struct super_block *, void *, int),
struct vfsmount *mnt); struct vfsmount *mnt);
extern struct dentry *mount_nodev(struct file_system_type *fs_type,
int flags, void *data,
int (*fill_super)(struct super_block *, void *, int));
extern int get_sb_nodev(struct file_system_type *fs_type, extern int get_sb_nodev(struct file_system_type *fs_type,
int flags, void *data, int flags, void *data,
int (*fill_super)(struct super_block *, void *, int), int (*fill_super)(struct super_block *, void *, int),
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
struct inode *ramfs_get_inode(struct super_block *sb, const struct inode *dir, struct inode *ramfs_get_inode(struct super_block *sb, const struct inode *dir,
int mode, dev_t dev); int mode, dev_t dev);
extern int ramfs_get_sb(struct file_system_type *fs_type, extern struct dentry *ramfs_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt); int flags, const char *dev_name, void *data);
#ifndef CONFIG_MMU #ifndef CONFIG_MMU
extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize); extern int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize);
......
...@@ -2538,16 +2538,16 @@ static const struct vm_operations_struct shmem_vm_ops = { ...@@ -2538,16 +2538,16 @@ static const struct vm_operations_struct shmem_vm_ops = {
}; };
static int shmem_get_sb(struct file_system_type *fs_type, static struct dentry *shmem_mount(struct file_system_type *fs_type,
int flags, const char *dev_name, void *data, struct vfsmount *mnt) int flags, const char *dev_name, void *data)
{ {
return get_sb_nodev(fs_type, flags, data, shmem_fill_super, mnt); return mount_nodev(fs_type, flags, data, shmem_fill_super);
} }
static struct file_system_type tmpfs_fs_type = { static struct file_system_type tmpfs_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "tmpfs", .name = "tmpfs",
.get_sb = shmem_get_sb, .mount = shmem_mount,
.kill_sb = kill_litter_super, .kill_sb = kill_litter_super,
}; };
...@@ -2643,7 +2643,7 @@ void mem_cgroup_get_shmem_target(struct inode *inode, pgoff_t pgoff, ...@@ -2643,7 +2643,7 @@ void mem_cgroup_get_shmem_target(struct inode *inode, pgoff_t pgoff,
static struct file_system_type tmpfs_fs_type = { static struct file_system_type tmpfs_fs_type = {
.name = "tmpfs", .name = "tmpfs",
.get_sb = ramfs_get_sb, .mount = ramfs_mount,
.kill_sb = kill_litter_super, .kill_sb = kill_litter_super,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册