diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2010-07-24 16:56:46 -0400 |
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2010-10-29 04:16:26 -0400 |
| commit | 848b83a59b772b8f102bc5e3f1187c2fa5676959 (patch) | |
| tree | d09a3755252e73f4bef000ffafbc0e9fd72d1a38 | |
| parent | 152a08366671080f27b32e0c411ad620c5f88b57 (diff) | |
convert get_sb_mtd() users to ->mount()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | drivers/mtd/mtdsuper.c | 54 | ||||
| -rw-r--r-- | fs/jffs2/super.c | 9 | ||||
| -rw-r--r-- | fs/romfs/super.c | 17 | ||||
| -rw-r--r-- | include/linux/mtd/super.h | 5 |
4 files changed, 36 insertions, 49 deletions
diff --git a/drivers/mtd/mtdsuper.c b/drivers/mtd/mtdsuper.c index 38e2ab07e7a3..16b02a1fc100 100644 --- a/drivers/mtd/mtdsuper.c +++ b/drivers/mtd/mtdsuper.c | |||
| @@ -54,11 +54,10 @@ static int get_sb_mtd_set(struct super_block *sb, void *_mtd) | |||
| 54 | /* | 54 | /* |
| 55 | * get a superblock on an MTD-backed filesystem | 55 | * get a superblock on an MTD-backed filesystem |
| 56 | */ | 56 | */ |
| 57 | static int get_sb_mtd_aux(struct file_system_type *fs_type, int flags, | 57 | static struct dentry *mount_mtd_aux(struct file_system_type *fs_type, int flags, |
| 58 | const char *dev_name, void *data, | 58 | const char *dev_name, void *data, |
| 59 | struct mtd_info *mtd, | 59 | struct mtd_info *mtd, |
| 60 | int (*fill_super)(struct super_block *, void *, int), | 60 | int (*fill_super)(struct super_block *, void *, int)) |
| 61 | struct vfsmount *mnt) | ||
| 62 | { | 61 | { |
| 63 | struct super_block *sb; | 62 | struct super_block *sb; |
| 64 | int ret; | 63 | int ret; |
| @@ -79,57 +78,49 @@ static int get_sb_mtd_aux(struct file_system_type *fs_type, int flags, | |||
| 79 | ret = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); | 78 | ret = fill_super(sb, data, flags & MS_SILENT ? 1 : 0); |
| 80 | if (ret < 0) { | 79 | if (ret < 0) { |
| 81 | deactivate_locked_super(sb); | 80 | deactivate_locked_super(sb); |
| 82 | return ret; | 81 | return ERR_PTR(ret); |
| 83 | } | 82 | } |
| 84 | 83 | ||
| 85 | /* go */ | 84 | /* go */ |
| 86 | sb->s_flags |= MS_ACTIVE; | 85 | sb->s_flags |= MS_ACTIVE; |
| 87 | simple_set_mnt(mnt, sb); | 86 | return dget(sb->s_root); |
| 88 | |||
| 89 | return 0; | ||
| 90 | 87 | ||
| 91 | /* new mountpoint for an already mounted superblock */ | 88 | /* new mountpoint for an already mounted superblock */ |
| 92 | already_mounted: | 89 | already_mounted: |
| 93 | DEBUG(1, "MTDSB: Device %d (\"%s\") is already mounted\n", | 90 | DEBUG(1, "MTDSB: Device %d (\"%s\") is already mounted\n", |
| 94 | mtd->index, mtd->name); | 91 | mtd->index, mtd->name); |
| 95 | simple_set_mnt(mnt, sb); | 92 | put_mtd_device(mtd); |
| 96 | ret = 0; | 93 | return dget(sb->s_root); |
| 97 | goto out_put; | ||
| 98 | 94 | ||
| 99 | out_error: | 95 | out_error: |
| 100 | ret = PTR_ERR(sb); | ||
| 101 | out_put: | ||
| 102 | put_mtd_device(mtd); | 96 | put_mtd_device(mtd); |
| 103 | return ret; | 97 | return ERR_CAST(sb); |
| 104 | } | 98 | } |
| 105 | 99 | ||
| 106 | /* | 100 | /* |
| 107 | * get a superblock on an MTD-backed filesystem by MTD device number | 101 | * get a superblock on an MTD-backed filesystem by MTD device number |
| 108 | */ | 102 | */ |
| 109 | static int get_sb_mtd_nr(struct file_system_type *fs_type, int flags, | 103 | static struct dentry *mount_mtd_nr(struct file_system_type *fs_type, int flags, |
| 110 | const char *dev_name, void *data, int mtdnr, | 104 | const char *dev_name, void *data, int mtdnr, |
| 111 | int (*fill_super)(struct super_block *, void *, int), | 105 | int (*fill_super)(struct super_block *, void *, int)) |
| 112 | struct vfsmount *mnt) | ||
| 113 | { | 106 | { |
| 114 | struct mtd_info *mtd; | 107 | struct mtd_info *mtd; |
| 115 | 108 | ||
| 116 | mtd = get_mtd_device(NULL, mtdnr); | 109 | mtd = get_mtd_device(NULL, mtdnr); |
| 117 | if (IS_ERR(mtd)) { | 110 | if (IS_ERR(mtd)) { |
| 118 | DEBUG(0, "MTDSB: Device #%u doesn't appear to exist\n", mtdnr); | 111 | DEBUG(0, "MTDSB: Device #%u doesn't appear to exist\n", mtdnr); |
| 119 | return PTR_ERR(mtd); | 112 | return ERR_CAST(mtd); |
| 120 | } | 113 | } |
| 121 | 114 | ||
| 122 | return get_sb_mtd_aux(fs_type, flags, dev_name, data, mtd, fill_super, | 115 | return mount_mtd_aux(fs_type, flags, dev_name, data, mtd, fill_super); |
| 123 | mnt); | ||
| 124 | } | 116 | } |
| 125 | 117 | ||
| 126 | /* | 118 | /* |
| 127 | * set up an MTD-based superblock | 119 | * set up an MTD-based superblock |
| 128 | */ | 120 | */ |
| 129 | int get_sb_mtd(struct file_system_type *fs_type, int flags, | 121 | struct dentry *mount_mtd(struct file_system_type *fs_type, int flags, |
| 130 | const char *dev_name, void *data, | 122 | const char *dev_name, void *data, |
| 131 | int (*fill_super)(struct super_block *, void *, int), | 123 | int (*fill_super)(struct super_block *, void *, int)) |
| 132 | struct vfsmount *mnt) | ||
| 133 | { | 124 | { |
| 134 | #ifdef CONFIG_BLOCK | 125 | #ifdef CONFIG_BLOCK |
| 135 | struct block_device *bdev; | 126 | struct block_device *bdev; |
| @@ -138,7 +129,7 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, | |||
| 138 | int mtdnr; | 129 | int mtdnr; |
| 139 | 130 | ||
| 140 | if (!dev_name) | 131 | if (!dev_name) |
| 141 | return -EINVAL; | 132 | return ERR_PTR(-EINVAL); |
| 142 | 133 | ||
| 143 | DEBUG(2, "MTDSB: dev_name \"%s\"\n", dev_name); | 134 | DEBUG(2, "MTDSB: dev_name \"%s\"\n", dev_name); |
| 144 | 135 | ||
| @@ -156,10 +147,10 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, | |||
| 156 | 147 | ||
| 157 | mtd = get_mtd_device_nm(dev_name + 4); | 148 | mtd = get_mtd_device_nm(dev_name + 4); |
| 158 | if (!IS_ERR(mtd)) | 149 | if (!IS_ERR(mtd)) |
| 159 | return get_sb_mtd_aux( | 150 | return mount_mtd_aux( |
| 160 | fs_type, flags, | 151 | fs_type, flags, |
| 161 | dev_name, data, mtd, | 152 | dev_name, data, mtd, |
| 162 | fill_super, mnt); | 153 | fill_super); |
| 163 | 154 | ||
| 164 | printk(KERN_NOTICE "MTD:" | 155 | printk(KERN_NOTICE "MTD:" |
| 165 | " MTD device with name \"%s\" not found.\n", | 156 | " MTD device with name \"%s\" not found.\n", |
| @@ -174,9 +165,9 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, | |||
| 174 | /* It was a valid number */ | 165 | /* It was a valid number */ |
| 175 | DEBUG(1, "MTDSB: mtd%%d, mtdnr %d\n", | 166 | DEBUG(1, "MTDSB: mtd%%d, mtdnr %d\n", |
| 176 | mtdnr); | 167 | mtdnr); |
| 177 | return get_sb_mtd_nr(fs_type, flags, | 168 | return mount_mtd_nr(fs_type, flags, |
| 178 | dev_name, data, | 169 | dev_name, data, |
| 179 | mtdnr, fill_super, mnt); | 170 | mtdnr, fill_super); |
| 180 | } | 171 | } |
| 181 | } | 172 | } |
| 182 | } | 173 | } |
| @@ -189,7 +180,7 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, | |||
| 189 | if (IS_ERR(bdev)) { | 180 | if (IS_ERR(bdev)) { |
| 190 | ret = PTR_ERR(bdev); | 181 | ret = PTR_ERR(bdev); |
| 191 | DEBUG(1, "MTDSB: lookup_bdev() returned %d\n", ret); | 182 | DEBUG(1, "MTDSB: lookup_bdev() returned %d\n", ret); |
| 192 | return ret; | 183 | return ERR_PTR(ret); |
| 193 | } | 184 | } |
| 194 | DEBUG(1, "MTDSB: lookup_bdev() returned 0\n"); | 185 | DEBUG(1, "MTDSB: lookup_bdev() returned 0\n"); |
| 195 | 186 | ||
| @@ -202,8 +193,7 @@ int get_sb_mtd(struct file_system_type *fs_type, int flags, | |||
| 202 | if (major != MTD_BLOCK_MAJOR) | 193 | if (major != MTD_BLOCK_MAJOR) |
| 203 | goto not_an_MTD_device; | 194 | goto not_an_MTD_device; |
| 204 | 195 | ||
| 205 | return get_sb_mtd_nr(fs_type, flags, dev_name, data, mtdnr, fill_super, | 196 | return mount_mtd_nr(fs_type, flags, dev_name, data, mtdnr, fill_super); |
| 206 | mnt); | ||
| 207 | 197 | ||
| 208 | not_an_MTD_device: | 198 | not_an_MTD_device: |
| 209 | #endif /* CONFIG_BLOCK */ | 199 | #endif /* CONFIG_BLOCK */ |
| @@ -212,10 +202,10 @@ not_an_MTD_device: | |||
| 212 | printk(KERN_NOTICE | 202 | printk(KERN_NOTICE |
| 213 | "MTD: Attempt to mount non-MTD device \"%s\"\n", | 203 | "MTD: Attempt to mount non-MTD device \"%s\"\n", |
| 214 | dev_name); | 204 | dev_name); |
| 215 | return -EINVAL; | 205 | return ERR_PTR(-EINVAL); |
| 216 | } | 206 | } |
| 217 | 207 | ||
| 218 | EXPORT_SYMBOL_GPL(get_sb_mtd); | 208 | EXPORT_SYMBOL_GPL(mount_mtd); |
| 219 | 209 | ||
| 220 | /* | 210 | /* |
| 221 | * destroy an MTD-based superblock | 211 | * destroy an MTD-based superblock |
diff --git a/fs/jffs2/super.c b/fs/jffs2/super.c index d1ae5dfc22b9..c86041b866a4 100644 --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c | |||
| @@ -179,12 +179,11 @@ static int jffs2_fill_super(struct super_block *sb, void *data, int silent) | |||
| 179 | return ret; | 179 | return ret; |
| 180 | } | 180 | } |
| 181 | 181 | ||
| 182 | static int jffs2_get_sb(struct file_system_type *fs_type, | 182 | static struct dentry *jffs2_mount(struct file_system_type *fs_type, |
| 183 | int flags, const char *dev_name, | 183 | int flags, const char *dev_name, |
| 184 | void *data, struct vfsmount *mnt) | 184 | void *data) |
| 185 | { | 185 | { |
| 186 | return get_sb_mtd(fs_type, flags, dev_name, data, jffs2_fill_super, | 186 | return mount_mtd(fs_type, flags, dev_name, data, jffs2_fill_super); |
| 187 | mnt); | ||
| 188 | } | 187 | } |
| 189 | 188 | ||
| 190 | static void jffs2_put_super (struct super_block *sb) | 189 | static void jffs2_put_super (struct super_block *sb) |
| @@ -229,7 +228,7 @@ static void jffs2_kill_sb(struct super_block *sb) | |||
| 229 | static struct file_system_type jffs2_fs_type = { | 228 | static struct file_system_type jffs2_fs_type = { |
| 230 | .owner = THIS_MODULE, | 229 | .owner = THIS_MODULE, |
| 231 | .name = "jffs2", | 230 | .name = "jffs2", |
| 232 | .get_sb = jffs2_get_sb, | 231 | .mount = jffs2_mount, |
| 233 | .kill_sb = jffs2_kill_sb, | 232 | .kill_sb = jffs2_kill_sb, |
| 234 | }; | 233 | }; |
| 235 | 234 | ||
diff --git a/fs/romfs/super.c b/fs/romfs/super.c index 268580535c92..6647f90e55cd 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c | |||
| @@ -552,20 +552,19 @@ error_rsb: | |||
| 552 | /* | 552 | /* |
| 553 | * get a superblock for mounting | 553 | * get a superblock for mounting |
| 554 | */ | 554 | */ |
| 555 | static int romfs_get_sb(struct file_system_type *fs_type, | 555 | static struct dentry *romfs_mount(struct file_system_type *fs_type, |
| 556 | int flags, const char *dev_name, | 556 | int flags, const char *dev_name, |
| 557 | void *data, struct vfsmount *mnt) | 557 | void *data) |
| 558 | { | 558 | { |
| 559 | int ret = -EINVAL; | 559 | struct dentry *ret = ERR_PTR(-EINVAL); |
| 560 | 560 | ||
| 561 | #ifdef CONFIG_ROMFS_ON_MTD | 561 | #ifdef CONFIG_ROMFS_ON_MTD |
| 562 | ret = get_sb_mtd(fs_type, flags, dev_name, data, romfs_fill_super, | 562 | ret = mount_mtd(fs_type, flags, dev_name, data, romfs_fill_super); |
| 563 | mnt); | ||
| 564 | #endif | 563 | #endif |
| 565 | #ifdef CONFIG_ROMFS_ON_BLOCK | 564 | #ifdef CONFIG_ROMFS_ON_BLOCK |
| 566 | if (ret == -EINVAL) | 565 | if (ret == ERR_PTR(-EINVAL)) |
| 567 | ret = get_sb_bdev(fs_type, flags, dev_name, data, | 566 | ret = mount_bdev(fs_type, flags, dev_name, data, |
| 568 | romfs_fill_super, mnt); | 567 | romfs_fill_super); |
| 569 | #endif | 568 | #endif |
| 570 | return ret; | 569 | return ret; |
| 571 | } | 570 | } |
| @@ -592,7 +591,7 @@ static void romfs_kill_sb(struct super_block *sb) | |||
| 592 | static struct file_system_type romfs_fs_type = { | 591 | static struct file_system_type romfs_fs_type = { |
| 593 | .owner = THIS_MODULE, | 592 | .owner = THIS_MODULE, |
| 594 | .name = "romfs", | 593 | .name = "romfs", |
| 595 | .get_sb = romfs_get_sb, | 594 | .mount = romfs_mount, |
| 596 | .kill_sb = romfs_kill_sb, | 595 | .kill_sb = romfs_kill_sb, |
| 597 | .fs_flags = FS_REQUIRES_DEV, | 596 | .fs_flags = FS_REQUIRES_DEV, |
| 598 | }; | 597 | }; |
diff --git a/include/linux/mtd/super.h b/include/linux/mtd/super.h index 4016dd6fe336..f456230f9330 100644 --- a/include/linux/mtd/super.h +++ b/include/linux/mtd/super.h | |||
| @@ -18,10 +18,9 @@ | |||
| 18 | #include <linux/fs.h> | 18 | #include <linux/fs.h> |
| 19 | #include <linux/mount.h> | 19 | #include <linux/mount.h> |
| 20 | 20 | ||
| 21 | extern int get_sb_mtd(struct file_system_type *fs_type, int flags, | 21 | extern struct dentry *mount_mtd(struct file_system_type *fs_type, int flags, |
| 22 | const char *dev_name, void *data, | 22 | const char *dev_name, void *data, |
| 23 | int (*fill_super)(struct super_block *, void *, int), | 23 | int (*fill_super)(struct super_block *, void *, int)); |
| 24 | struct vfsmount *mnt); | ||
| 25 | extern void kill_mtd_super(struct super_block *sb); | 24 | extern void kill_mtd_super(struct super_block *sb); |
| 26 | 25 | ||
| 27 | 26 | ||
