diff options
-rw-r--r-- | arch/ia64/kernel/perfmon.c | 9 | ||||
-rw-r--r-- | drivers/mtd/mtdchar.c | 10 | ||||
-rw-r--r-- | fs/anon_inodes.c | 10 | ||||
-rw-r--r-- | fs/block_dev.c | 8 | ||||
-rw-r--r-- | fs/libfs.c | 14 | ||||
-rw-r--r-- | fs/pipe.c | 9 | ||||
-rw-r--r-- | include/linux/fs.h | 5 | ||||
-rw-r--r-- | net/socket.c | 10 |
8 files changed, 32 insertions, 43 deletions
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c index 6b1852f7f972..39e534f5a3b0 100644 --- a/arch/ia64/kernel/perfmon.c +++ b/arch/ia64/kernel/perfmon.c | |||
@@ -618,16 +618,15 @@ pfm_get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, | |||
618 | } | 618 | } |
619 | 619 | ||
620 | 620 | ||
621 | static int | 621 | static struct dentry * |
622 | pfmfs_get_sb(struct file_system_type *fs_type, int flags, const char *dev_name, void *data, | 622 | pfmfs_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) |
623 | struct vfsmount *mnt) | ||
624 | { | 623 | { |
625 | return get_sb_pseudo(fs_type, "pfm:", NULL, PFMFS_MAGIC, mnt); | 624 | return mount_pseudo(fs_type, "pfm:", NULL, PFMFS_MAGIC); |
626 | } | 625 | } |
627 | 626 | ||
628 | static struct file_system_type pfm_fs_type = { | 627 | static struct file_system_type pfm_fs_type = { |
629 | .name = "pfmfs", | 628 | .name = "pfmfs", |
630 | .get_sb = pfmfs_get_sb, | 629 | .mount = pfmfs_mount, |
631 | .kill_sb = kill_anon_super, | 630 | .kill_sb = kill_anon_super, |
632 | }; | 631 | }; |
633 | 632 | ||
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 5ef45487b65f..a34a0fe14884 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c | |||
@@ -1030,17 +1030,15 @@ static const struct file_operations mtd_fops = { | |||
1030 | #endif | 1030 | #endif |
1031 | }; | 1031 | }; |
1032 | 1032 | ||
1033 | static int mtd_inodefs_get_sb(struct file_system_type *fs_type, int flags, | 1033 | static struct dentry *mtd_inodefs_mount(struct file_system_type *fs_type, |
1034 | const char *dev_name, void *data, | 1034 | int flags, const char *dev_name, void *data) |
1035 | struct vfsmount *mnt) | ||
1036 | { | 1035 | { |
1037 | return get_sb_pseudo(fs_type, "mtd_inode:", NULL, MTD_INODE_FS_MAGIC, | 1036 | return mount_pseudo(fs_type, "mtd_inode:", NULL, MTD_INODE_FS_MAGIC); |
1038 | mnt); | ||
1039 | } | 1037 | } |
1040 | 1038 | ||
1041 | static struct file_system_type mtd_inodefs_type = { | 1039 | static struct file_system_type mtd_inodefs_type = { |
1042 | .name = "mtd_inodefs", | 1040 | .name = "mtd_inodefs", |
1043 | .get_sb = mtd_inodefs_get_sb, | 1041 | .mount = mtd_inodefs_mount, |
1044 | .kill_sb = kill_anon_super, | 1042 | .kill_sb = kill_anon_super, |
1045 | }; | 1043 | }; |
1046 | 1044 | ||
diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c index 5365527ca43f..57ce55b2564c 100644 --- a/fs/anon_inodes.c +++ b/fs/anon_inodes.c | |||
@@ -26,12 +26,10 @@ static struct vfsmount *anon_inode_mnt __read_mostly; | |||
26 | static struct inode *anon_inode_inode; | 26 | static struct inode *anon_inode_inode; |
27 | static const struct file_operations anon_inode_fops; | 27 | static const struct file_operations anon_inode_fops; |
28 | 28 | ||
29 | static int anon_inodefs_get_sb(struct file_system_type *fs_type, int flags, | 29 | static struct dentry *anon_inodefs_mount(struct file_system_type *fs_type, |
30 | const char *dev_name, void *data, | 30 | int flags, const char *dev_name, void *data) |
31 | struct vfsmount *mnt) | ||
32 | { | 31 | { |
33 | return get_sb_pseudo(fs_type, "anon_inode:", NULL, ANON_INODE_FS_MAGIC, | 32 | return mount_pseudo(fs_type, "anon_inode:", NULL, ANON_INODE_FS_MAGIC); |
34 | mnt); | ||
35 | } | 33 | } |
36 | 34 | ||
37 | /* | 35 | /* |
@@ -45,7 +43,7 @@ static char *anon_inodefs_dname(struct dentry *dentry, char *buffer, int buflen) | |||
45 | 43 | ||
46 | static struct file_system_type anon_inode_fs_type = { | 44 | static struct file_system_type anon_inode_fs_type = { |
47 | .name = "anon_inodefs", | 45 | .name = "anon_inodefs", |
48 | .get_sb = anon_inodefs_get_sb, | 46 | .mount = anon_inodefs_mount, |
49 | .kill_sb = kill_anon_super, | 47 | .kill_sb = kill_anon_super, |
50 | }; | 48 | }; |
51 | static const struct dentry_operations anon_inodefs_dentry_operations = { | 49 | static const struct dentry_operations anon_inodefs_dentry_operations = { |
diff --git a/fs/block_dev.c b/fs/block_dev.c index dea3b628a6ce..06e8ff12b97c 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -464,15 +464,15 @@ static const struct super_operations bdev_sops = { | |||
464 | .evict_inode = bdev_evict_inode, | 464 | .evict_inode = bdev_evict_inode, |
465 | }; | 465 | }; |
466 | 466 | ||
467 | static int bd_get_sb(struct file_system_type *fs_type, | 467 | static struct dentry *bd_mount(struct file_system_type *fs_type, |
468 | int flags, const char *dev_name, void *data, struct vfsmount *mnt) | 468 | int flags, const char *dev_name, void *data) |
469 | { | 469 | { |
470 | return get_sb_pseudo(fs_type, "bdev:", &bdev_sops, 0x62646576, mnt); | 470 | return mount_pseudo(fs_type, "bdev:", &bdev_sops, 0x62646576); |
471 | } | 471 | } |
472 | 472 | ||
473 | static struct file_system_type bd_type = { | 473 | static struct file_system_type bd_type = { |
474 | .name = "bdev", | 474 | .name = "bdev", |
475 | .get_sb = bd_get_sb, | 475 | .mount = bd_mount, |
476 | .kill_sb = kill_anon_super, | 476 | .kill_sb = kill_anon_super, |
477 | }; | 477 | }; |
478 | 478 | ||
diff --git a/fs/libfs.c b/fs/libfs.c index 304a5132ca27..a3accdf528ad 100644 --- a/fs/libfs.c +++ b/fs/libfs.c | |||
@@ -201,9 +201,8 @@ static const struct super_operations simple_super_operations = { | |||
201 | * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that | 201 | * Common helper for pseudo-filesystems (sockfs, pipefs, bdev - stuff that |
202 | * will never be mountable) | 202 | * will never be mountable) |
203 | */ | 203 | */ |
204 | int get_sb_pseudo(struct file_system_type *fs_type, char *name, | 204 | struct dentry *mount_pseudo(struct file_system_type *fs_type, char *name, |
205 | const struct super_operations *ops, unsigned long magic, | 205 | const struct super_operations *ops, unsigned long magic) |
206 | struct vfsmount *mnt) | ||
207 | { | 206 | { |
208 | struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL); | 207 | struct super_block *s = sget(fs_type, NULL, set_anon_super, NULL); |
209 | struct dentry *dentry; | 208 | struct dentry *dentry; |
@@ -211,7 +210,7 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name, | |||
211 | struct qstr d_name = {.name = name, .len = strlen(name)}; | 210 | struct qstr d_name = {.name = name, .len = strlen(name)}; |
212 | 211 | ||
213 | if (IS_ERR(s)) | 212 | if (IS_ERR(s)) |
214 | return PTR_ERR(s); | 213 | return ERR_CAST(s); |
215 | 214 | ||
216 | s->s_flags = MS_NOUSER; | 215 | s->s_flags = MS_NOUSER; |
217 | s->s_maxbytes = MAX_LFS_FILESIZE; | 216 | s->s_maxbytes = MAX_LFS_FILESIZE; |
@@ -241,12 +240,11 @@ int get_sb_pseudo(struct file_system_type *fs_type, char *name, | |||
241 | d_instantiate(dentry, root); | 240 | d_instantiate(dentry, root); |
242 | s->s_root = dentry; | 241 | s->s_root = dentry; |
243 | s->s_flags |= MS_ACTIVE; | 242 | s->s_flags |= MS_ACTIVE; |
244 | simple_set_mnt(mnt, s); | 243 | return dget(s->s_root); |
245 | return 0; | ||
246 | 244 | ||
247 | Enomem: | 245 | Enomem: |
248 | deactivate_locked_super(s); | 246 | deactivate_locked_super(s); |
249 | return -ENOMEM; | 247 | return ERR_PTR(-ENOMEM); |
250 | } | 248 | } |
251 | 249 | ||
252 | int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) | 250 | int simple_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) |
@@ -951,7 +949,7 @@ EXPORT_SYMBOL(dcache_dir_lseek); | |||
951 | EXPORT_SYMBOL(dcache_dir_open); | 949 | EXPORT_SYMBOL(dcache_dir_open); |
952 | EXPORT_SYMBOL(dcache_readdir); | 950 | EXPORT_SYMBOL(dcache_readdir); |
953 | EXPORT_SYMBOL(generic_read_dir); | 951 | EXPORT_SYMBOL(generic_read_dir); |
954 | EXPORT_SYMBOL(get_sb_pseudo); | 952 | EXPORT_SYMBOL(mount_pseudo); |
955 | EXPORT_SYMBOL(simple_write_begin); | 953 | EXPORT_SYMBOL(simple_write_begin); |
956 | EXPORT_SYMBOL(simple_write_end); | 954 | EXPORT_SYMBOL(simple_write_end); |
957 | EXPORT_SYMBOL(simple_dir_inode_operations); | 955 | EXPORT_SYMBOL(simple_dir_inode_operations); |
@@ -1247,16 +1247,15 @@ out: | |||
1247 | * any operations on the root directory. However, we need a non-trivial | 1247 | * any operations on the root directory. However, we need a non-trivial |
1248 | * d_name - pipe: will go nicely and kill the special-casing in procfs. | 1248 | * d_name - pipe: will go nicely and kill the special-casing in procfs. |
1249 | */ | 1249 | */ |
1250 | static int pipefs_get_sb(struct file_system_type *fs_type, | 1250 | static struct dentry *pipefs_mount(struct file_system_type *fs_type, |
1251 | int flags, const char *dev_name, void *data, | 1251 | int flags, const char *dev_name, void *data) |
1252 | struct vfsmount *mnt) | ||
1253 | { | 1252 | { |
1254 | return get_sb_pseudo(fs_type, "pipe:", NULL, PIPEFS_MAGIC, mnt); | 1253 | return mount_pseudo(fs_type, "pipe:", NULL, PIPEFS_MAGIC); |
1255 | } | 1254 | } |
1256 | 1255 | ||
1257 | static struct file_system_type pipe_fs_type = { | 1256 | static struct file_system_type pipe_fs_type = { |
1258 | .name = "pipefs", | 1257 | .name = "pipefs", |
1259 | .get_sb = pipefs_get_sb, | 1258 | .mount = pipefs_mount, |
1260 | .kill_sb = kill_anon_super, | 1259 | .kill_sb = kill_anon_super, |
1261 | }; | 1260 | }; |
1262 | 1261 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 4c3a29ddcacb..43e6cfb5cbb3 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -1824,9 +1824,8 @@ struct super_block *sget(struct file_system_type *type, | |||
1824 | int (*test)(struct super_block *,void *), | 1824 | int (*test)(struct super_block *,void *), |
1825 | int (*set)(struct super_block *,void *), | 1825 | int (*set)(struct super_block *,void *), |
1826 | void *data); | 1826 | void *data); |
1827 | extern int get_sb_pseudo(struct file_system_type *, char *, | 1827 | extern struct dentry *mount_pseudo(struct file_system_type *, char *, |
1828 | const struct super_operations *ops, unsigned long, | 1828 | const struct super_operations *ops, unsigned long); |
1829 | struct vfsmount *mnt); | ||
1830 | extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); | 1829 | extern void simple_set_mnt(struct vfsmount *mnt, struct super_block *sb); |
1831 | 1830 | ||
1832 | static inline void sb_mark_dirty(struct super_block *sb) | 1831 | static inline void sb_mark_dirty(struct super_block *sb) |
diff --git a/net/socket.c b/net/socket.c index ee3cd280c76e..5247ae10f374 100644 --- a/net/socket.c +++ b/net/socket.c | |||
@@ -305,19 +305,17 @@ static const struct super_operations sockfs_ops = { | |||
305 | .statfs = simple_statfs, | 305 | .statfs = simple_statfs, |
306 | }; | 306 | }; |
307 | 307 | ||
308 | static int sockfs_get_sb(struct file_system_type *fs_type, | 308 | static struct dentry *sockfs_mount(struct file_system_type *fs_type, |
309 | int flags, const char *dev_name, void *data, | 309 | int flags, const char *dev_name, void *data) |
310 | struct vfsmount *mnt) | ||
311 | { | 310 | { |
312 | return get_sb_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC, | 311 | return mount_pseudo(fs_type, "socket:", &sockfs_ops, SOCKFS_MAGIC); |
313 | mnt); | ||
314 | } | 312 | } |
315 | 313 | ||
316 | static struct vfsmount *sock_mnt __read_mostly; | 314 | static struct vfsmount *sock_mnt __read_mostly; |
317 | 315 | ||
318 | static struct file_system_type sock_fs_type = { | 316 | static struct file_system_type sock_fs_type = { |
319 | .name = "sockfs", | 317 | .name = "sockfs", |
320 | .get_sb = sockfs_get_sb, | 318 | .mount = sockfs_mount, |
321 | .kill_sb = kill_anon_super, | 319 | .kill_sb = kill_anon_super, |
322 | }; | 320 | }; |
323 | 321 | ||