mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
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: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
parent
bb4a58bf46
commit
1f5ce9e93a
14 changed files with 17 additions and 16 deletions
|
@ -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)
|
||||||
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)
|
||||||
|
|
||||||
/* 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);
|
||||||
|
|
||||||
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)
|
||||||
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 {
|
||||||
} 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,
|
||||||
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 = {
|
||||||
|
|
||||||
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,
|
||||||
|
|
||||||
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 @@ out:
|
||||||
|
|
||||||
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)
|
||||||
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;
|
||||||
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)
|
||||||
#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)
|
||||||
{
|
{
|
||||||
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,
|
||||||
|
|
||||||
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;
|
||||||
|
|
Loading…
Reference in a new issue