提交 1f5ce9e9 编写于 作者: T Trond Myklebust

VFS: Unexport do_kern_mount() and clean up simple_pin_fs()

Replace all module uses with the new vfs_kern_mount() interface, and fix up
simple_pin_fs().
Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 bb4a58bf
...@@ -19,7 +19,7 @@ following procedure: ...@@ -19,7 +19,7 @@ following procedure:
(2) Have the follow_link() op do the following steps: (2) Have the follow_link() op do the following steps:
(a) Call do_kern_mount() to call the appropriate filesystem to set up a (a) Call vfs_kern_mount() to call the appropriate filesystem to set up a
superblock and gain a vfsmount structure representing it. superblock and gain a vfsmount structure representing it.
(b) Copy the nameidata provided as an argument and substitute the dentry (b) Copy the nameidata provided as an argument and substitute the dentry
......
...@@ -569,7 +569,7 @@ static int create_special_files (void) ...@@ -569,7 +569,7 @@ static int create_special_files (void)
ignore_mount = 1; ignore_mount = 1;
/* create the devices special file */ /* create the devices special file */
retval = simple_pin_fs("usbfs", &usbfs_mount, &usbfs_mount_count); retval = simple_pin_fs(&usb_fs_type, &usbfs_mount, &usbfs_mount_count);
if (retval) { if (retval) {
err ("Unable to get usbfs mount"); err ("Unable to get usbfs mount");
goto exit; goto exit;
......
...@@ -210,7 +210,7 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt) ...@@ -210,7 +210,7 @@ static struct vfsmount *afs_mntpt_do_automount(struct dentry *mntpt)
/* try and do the mount */ /* try and do the mount */
kdebug("--- attempting mount %s -o %s ---", devname, options); kdebug("--- attempting mount %s -o %s ---", devname, options);
mnt = do_kern_mount("afs", 0, devname, options); mnt = vfs_kern_mount(&afs_fs_type, 0, devname, options);
kdebug("--- mount result %p ---", mnt); kdebug("--- mount result %p ---", mnt);
free_page((unsigned long) devname); free_page((unsigned long) devname);
......
...@@ -48,7 +48,7 @@ static void afs_put_super(struct super_block *sb); ...@@ -48,7 +48,7 @@ static void afs_put_super(struct super_block *sb);
static void afs_destroy_inode(struct inode *inode); static void afs_destroy_inode(struct inode *inode);
static struct file_system_type afs_fs_type = { struct file_system_type afs_fs_type = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "afs", .name = "afs",
.get_sb = afs_get_sb, .get_sb = afs_get_sb,
......
...@@ -38,6 +38,8 @@ static inline struct afs_super_info *AFS_FS_S(struct super_block *sb) ...@@ -38,6 +38,8 @@ static inline struct afs_super_info *AFS_FS_S(struct super_block *sb)
return sb->s_fs_info; return sb->s_fs_info;
} }
extern struct file_system_type afs_fs_type;
#endif /* __KERNEL__ */ #endif /* __KERNEL__ */
#endif /* _LINUX_AFS_SUPER_H */ #endif /* _LINUX_AFS_SUPER_H */
...@@ -55,6 +55,7 @@ typedef struct { ...@@ -55,6 +55,7 @@ typedef struct {
} Node; } Node;
static DEFINE_RWLOCK(entries_lock); static DEFINE_RWLOCK(entries_lock);
static struct file_system_type bm_fs_type;
static struct vfsmount *bm_mnt; static struct vfsmount *bm_mnt;
static int entry_count; static int entry_count;
...@@ -638,7 +639,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer, ...@@ -638,7 +639,7 @@ static ssize_t bm_register_write(struct file *file, const char __user *buffer,
if (!inode) if (!inode)
goto out2; goto out2;
err = simple_pin_fs("binfmt_misc", &bm_mnt, &entry_count); err = simple_pin_fs(&bm_fs_type, &bm_mnt, &entry_count);
if (err) { if (err) {
iput(inode); iput(inode);
inode = NULL; inode = NULL;
......
...@@ -118,7 +118,7 @@ static struct file_system_type configfs_fs_type = { ...@@ -118,7 +118,7 @@ static struct file_system_type configfs_fs_type = {
int configfs_pin_fs(void) int configfs_pin_fs(void)
{ {
return simple_pin_fs("configfs", &configfs_mount, return simple_pin_fs(&configfs_fs_type, &configfs_mount,
&configfs_mnt_count); &configfs_mnt_count);
} }
......
...@@ -199,7 +199,7 @@ struct dentry *debugfs_create_file(const char *name, mode_t mode, ...@@ -199,7 +199,7 @@ struct dentry *debugfs_create_file(const char *name, mode_t mode,
pr_debug("debugfs: creating file '%s'\n",name); pr_debug("debugfs: creating file '%s'\n",name);
error = simple_pin_fs("debugfs", &debugfs_mount, &debugfs_mount_count); error = simple_pin_fs(&debug_fs_type, &debugfs_mount, &debugfs_mount_count);
if (error) if (error)
goto exit; goto exit;
......
...@@ -424,13 +424,13 @@ int simple_fill_super(struct super_block *s, int magic, struct tree_descr *files ...@@ -424,13 +424,13 @@ int simple_fill_super(struct super_block *s, int magic, struct tree_descr *files
static DEFINE_SPINLOCK(pin_fs_lock); static DEFINE_SPINLOCK(pin_fs_lock);
int simple_pin_fs(char *name, struct vfsmount **mount, int *count) int simple_pin_fs(struct file_system_type *type, struct vfsmount **mount, int *count)
{ {
struct vfsmount *mnt = NULL; struct vfsmount *mnt = NULL;
spin_lock(&pin_fs_lock); spin_lock(&pin_fs_lock);
if (unlikely(!*mount)) { if (unlikely(!*mount)) {
spin_unlock(&pin_fs_lock); spin_unlock(&pin_fs_lock);
mnt = do_kern_mount(name, 0, name, NULL); mnt = vfs_kern_mount(type, 0, type->name, NULL);
if (IS_ERR(mnt)) if (IS_ERR(mnt))
return PTR_ERR(mnt); return PTR_ERR(mnt);
spin_lock(&pin_fs_lock); spin_lock(&pin_fs_lock);
......
...@@ -864,11 +864,9 @@ do_kern_mount(const char *fstype, int flags, const char *name, void *data) ...@@ -864,11 +864,9 @@ do_kern_mount(const char *fstype, int flags, const char *name, void *data)
return mnt; return mnt;
} }
EXPORT_SYMBOL_GPL(do_kern_mount);
struct vfsmount *kern_mount(struct file_system_type *type) struct vfsmount *kern_mount(struct file_system_type *type)
{ {
return do_kern_mount(type->name, 0, type->name, NULL); return vfs_kern_mount(type, 0, type->name, NULL);
} }
EXPORT_SYMBOL(kern_mount); EXPORT_SYMBOL(kern_mount);
...@@ -1763,7 +1763,7 @@ extern struct inode_operations simple_dir_inode_operations; ...@@ -1763,7 +1763,7 @@ extern struct inode_operations simple_dir_inode_operations;
struct tree_descr { char *name; const struct file_operations *ops; int mode; }; struct tree_descr { char *name; const struct file_operations *ops; int mode; };
struct dentry *d_alloc_name(struct dentry *, const char *); struct dentry *d_alloc_name(struct dentry *, const char *);
extern int simple_fill_super(struct super_block *, int, struct tree_descr *); extern int simple_fill_super(struct super_block *, int, struct tree_descr *);
extern int simple_pin_fs(char *name, struct vfsmount **mount, int *count); extern int simple_pin_fs(struct file_system_type *, struct vfsmount **mount, int *count);
extern void simple_release_fs(struct vfsmount **mount, int *count); extern void simple_release_fs(struct vfsmount **mount, int *count);
extern ssize_t simple_read_from_buffer(void __user *, size_t, loff_t *, const void *, size_t); extern ssize_t simple_read_from_buffer(void __user *, size_t, loff_t *, const void *, size_t);
......
...@@ -2261,7 +2261,7 @@ static int __init init_tmpfs(void) ...@@ -2261,7 +2261,7 @@ static int __init init_tmpfs(void)
#ifdef CONFIG_TMPFS #ifdef CONFIG_TMPFS
devfs_mk_dir("shm"); devfs_mk_dir("shm");
#endif #endif
shm_mnt = do_kern_mount(tmpfs_fs_type.name, MS_NOUSER, shm_mnt = vfs_kern_mount(&tmpfs_fs_type, MS_NOUSER,
tmpfs_fs_type.name, NULL); tmpfs_fs_type.name, NULL);
if (IS_ERR(shm_mnt)) { if (IS_ERR(shm_mnt)) {
error = PTR_ERR(shm_mnt); error = PTR_ERR(shm_mnt);
......
...@@ -439,7 +439,7 @@ struct vfsmount *rpc_get_mount(void) ...@@ -439,7 +439,7 @@ struct vfsmount *rpc_get_mount(void)
{ {
int err; int err;
err = simple_pin_fs("rpc_pipefs", &rpc_mount, &rpc_mount_count); err = simple_pin_fs(&rpc_pipe_fs_type, &rpc_mount, &rpc_mount_count);
if (err != 0) if (err != 0)
return ERR_PTR(err); return ERR_PTR(err);
return rpc_mount; return rpc_mount;
......
...@@ -224,7 +224,7 @@ struct dentry *securityfs_create_file(const char *name, mode_t mode, ...@@ -224,7 +224,7 @@ struct dentry *securityfs_create_file(const char *name, mode_t mode,
pr_debug("securityfs: creating file '%s'\n",name); pr_debug("securityfs: creating file '%s'\n",name);
error = simple_pin_fs("securityfs", &mount, &mount_count); error = simple_pin_fs(&fs_type, &mount, &mount_count);
if (error) { if (error) {
dentry = ERR_PTR(error); dentry = ERR_PTR(error);
goto exit; goto exit;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册