diff options
-rw-r--r-- | fs/super.c | 14 | ||||
-rw-r--r-- | include/linux/fs.h | 5 | ||||
-rw-r--r-- | ipc/mqueue.c | 8 |
3 files changed, 12 insertions, 15 deletions
diff --git a/fs/super.c b/fs/super.c index f6a7bf1fff2b..ca696155cd9a 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -715,15 +715,14 @@ static int ns_set_super(struct super_block *sb, void *data) | |||
715 | return set_anon_super(sb, NULL); | 715 | return set_anon_super(sb, NULL); |
716 | } | 716 | } |
717 | 717 | ||
718 | int get_sb_ns(struct file_system_type *fs_type, int flags, void *data, | 718 | struct dentry *mount_ns(struct file_system_type *fs_type, int flags, |
719 | int (*fill_super)(struct super_block *, void *, int), | 719 | void *data, int (*fill_super)(struct super_block *, void *, int)) |
720 | struct vfsmount *mnt) | ||
721 | { | 720 | { |
722 | struct super_block *sb; | 721 | struct super_block *sb; |
723 | 722 | ||
724 | sb = sget(fs_type, ns_test_super, ns_set_super, data); | 723 | sb = sget(fs_type, ns_test_super, ns_set_super, data); |
725 | if (IS_ERR(sb)) | 724 | if (IS_ERR(sb)) |
726 | return PTR_ERR(sb); | 725 | return ERR_CAST(sb); |
727 | 726 | ||
728 | if (!sb->s_root) { | 727 | if (!sb->s_root) { |
729 | int err; | 728 | int err; |
@@ -731,17 +730,16 @@ int get_sb_ns(struct file_system_type *fs_type, int flags, void *data, | |||
731 | err = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); | 730 | err = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); |
732 | if (err) { | 731 | if (err) { |
733 | deactivate_locked_super(sb); | 732 | deactivate_locked_super(sb); |
734 | return err; | 733 | return ERR_PTR(err); |
735 | } | 734 | } |
736 | 735 | ||
737 | sb->s_flags |= MS_ACTIVE; | 736 | sb->s_flags |= MS_ACTIVE; |
738 | } | 737 | } |
739 | 738 | ||
740 | simple_set_mnt(mnt, sb); | 739 | return dget(sb->s_root); |
741 | return 0; | ||
742 | } | 740 | } |
743 | 741 | ||
744 | EXPORT_SYMBOL(get_sb_ns); | 742 | EXPORT_SYMBOL(mount_ns); |
745 | 743 | ||
746 | #ifdef CONFIG_BLOCK | 744 | #ifdef CONFIG_BLOCK |
747 | static int set_bdev_super(struct super_block *s, void *data) | 745 | static int set_bdev_super(struct super_block *s, void *data) |
diff --git a/include/linux/fs.h b/include/linux/fs.h index 43e6cfb5cbb3..4d07902bc50c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1789,9 +1789,8 @@ struct file_system_type { | |||
1789 | struct lock_class_key i_alloc_sem_key; | 1789 | struct lock_class_key i_alloc_sem_key; |
1790 | }; | 1790 | }; |
1791 | 1791 | ||
1792 | extern int get_sb_ns(struct file_system_type *fs_type, int flags, void *data, | 1792 | extern struct dentry *mount_ns(struct file_system_type *fs_type, int flags, |
1793 | int (*fill_super)(struct super_block *, void *, int), | 1793 | void *data, int (*fill_super)(struct super_block *, void *, int)); |
1794 | struct vfsmount *mnt); | ||
1795 | extern struct dentry *mount_bdev(struct file_system_type *fs_type, | 1794 | extern struct dentry *mount_bdev(struct file_system_type *fs_type, |
1796 | int flags, const char *dev_name, void *data, | 1795 | int flags, const char *dev_name, void *data, |
1797 | int (*fill_super)(struct super_block *, void *, int)); | 1796 | int (*fill_super)(struct super_block *, void *, int)); |
diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 3a61ffefe884..035f4399edbc 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c | |||
@@ -211,13 +211,13 @@ out: | |||
211 | return error; | 211 | return error; |
212 | } | 212 | } |
213 | 213 | ||
214 | static int mqueue_get_sb(struct file_system_type *fs_type, | 214 | static struct dentry *mqueue_mount(struct file_system_type *fs_type, |
215 | int flags, const char *dev_name, | 215 | int flags, const char *dev_name, |
216 | void *data, struct vfsmount *mnt) | 216 | void *data) |
217 | { | 217 | { |
218 | if (!(flags & MS_KERNMOUNT)) | 218 | if (!(flags & MS_KERNMOUNT)) |
219 | data = current->nsproxy->ipc_ns; | 219 | data = current->nsproxy->ipc_ns; |
220 | return get_sb_ns(fs_type, flags, data, mqueue_fill_super, mnt); | 220 | return mount_ns(fs_type, flags, data, mqueue_fill_super); |
221 | } | 221 | } |
222 | 222 | ||
223 | static void init_once(void *foo) | 223 | static void init_once(void *foo) |
@@ -1232,7 +1232,7 @@ static const struct super_operations mqueue_super_ops = { | |||
1232 | 1232 | ||
1233 | static struct file_system_type mqueue_fs_type = { | 1233 | static struct file_system_type mqueue_fs_type = { |
1234 | .name = "mqueue", | 1234 | .name = "mqueue", |
1235 | .get_sb = mqueue_get_sb, | 1235 | .mount = mqueue_mount, |
1236 | .kill_sb = kill_litter_super, | 1236 | .kill_sb = kill_litter_super, |
1237 | }; | 1237 | }; |
1238 | 1238 | ||