convert get_sb_single() users
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
25
fs/super.c
25
fs/super.c
@@ -900,29 +900,42 @@ static int compare_single(struct super_block *s, void *p)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int get_sb_single(struct file_system_type *fs_type,
|
||||
struct dentry *mount_single(struct file_system_type *fs_type,
|
||||
int flags, void *data,
|
||||
int (*fill_super)(struct super_block *, void *, int),
|
||||
struct vfsmount *mnt)
|
||||
int (*fill_super)(struct super_block *, void *, int))
|
||||
{
|
||||
struct super_block *s;
|
||||
int error;
|
||||
|
||||
s = sget(fs_type, compare_single, set_anon_super, NULL);
|
||||
if (IS_ERR(s))
|
||||
return PTR_ERR(s);
|
||||
return ERR_CAST(s);
|
||||
if (!s->s_root) {
|
||||
s->s_flags = flags;
|
||||
error = fill_super(s, data, flags & MS_SILENT ? 1 : 0);
|
||||
if (error) {
|
||||
deactivate_locked_super(s);
|
||||
return error;
|
||||
return ERR_PTR(error);
|
||||
}
|
||||
s->s_flags |= MS_ACTIVE;
|
||||
} else {
|
||||
do_remount_sb(s, flags, data, 0);
|
||||
}
|
||||
simple_set_mnt(mnt, s);
|
||||
return dget(s->s_root);
|
||||
}
|
||||
EXPORT_SYMBOL(mount_single);
|
||||
|
||||
int get_sb_single(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_single(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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user