Commit 0d85c799 authored by Al Viro's avatar Al Viro

logfs get_sb, part 2

take setting s_bdev/s_mtd/s_devops to callers of logfs_get_sb_device(),
don't bother passing them separately
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 71a1c012
...@@ -339,5 +339,9 @@ int logfs_get_sb_bdev(struct logfs_super *p, ...@@ -339,5 +339,9 @@ int logfs_get_sb_bdev(struct logfs_super *p,
return logfs_get_sb_mtd(p, type, flags, mtdnr, mnt); return logfs_get_sb_mtd(p, type, flags, mtdnr, mnt);
} }
return logfs_get_sb_device(p, type, flags, NULL, bdev, &bd_devops, mnt); p->s_bdev = bdev;
p->s_mtd = NULL;
p->s_devops = &bd_devops;
return logfs_get_sb_device(p, type, flags, mnt);
} }
...@@ -269,13 +269,14 @@ int logfs_get_sb_mtd(struct logfs_super *s, ...@@ -269,13 +269,14 @@ int logfs_get_sb_mtd(struct logfs_super *s,
struct file_system_type *type, int flags, struct file_system_type *type, int flags,
int mtdnr, struct vfsmount *mnt) int mtdnr, struct vfsmount *mnt)
{ {
struct mtd_info *mtd; struct mtd_info *mtd = get_mtd_device(NULL, mtdnr);
const struct logfs_device_ops *devops = &mtd_devops;
mtd = get_mtd_device(NULL, mtdnr);
if (IS_ERR(mtd)) { if (IS_ERR(mtd)) {
kfree(s); kfree(s);
return PTR_ERR(mtd); return PTR_ERR(mtd);
} }
return logfs_get_sb_device(s, type, flags, mtd, NULL, devops, mnt);
s->s_bdev = NULL;
s->s_mtd = mtd;
s->s_devops = &mtd_devops;
return logfs_get_sb_device(s, type, flags, mnt);
} }
...@@ -627,8 +627,7 @@ void *memchr_inv(const void *s, int c, size_t n); ...@@ -627,8 +627,7 @@ void *memchr_inv(const void *s, int c, size_t n);
int logfs_statfs(struct dentry *dentry, struct kstatfs *stats); int logfs_statfs(struct dentry *dentry, struct kstatfs *stats);
int logfs_get_sb_device(struct logfs_super *s, int logfs_get_sb_device(struct logfs_super *s,
struct file_system_type *type, int flags, struct file_system_type *type, int flags,
struct mtd_info *mtd, struct block_device *bdev, struct vfsmount *mnt);
const struct logfs_device_ops *devops, struct vfsmount *mnt);
int logfs_check_ds(struct logfs_disk_super *ds); int logfs_check_ds(struct logfs_disk_super *ds);
int logfs_write_sb(struct super_block *sb); int logfs_write_sb(struct super_block *sb);
......
...@@ -538,8 +538,7 @@ static void logfs_kill_sb(struct super_block *sb) ...@@ -538,8 +538,7 @@ static void logfs_kill_sb(struct super_block *sb)
int logfs_get_sb_device(struct logfs_super *super, int logfs_get_sb_device(struct logfs_super *super,
struct file_system_type *type, int flags, struct file_system_type *type, int flags,
struct mtd_info *mtd, struct block_device *bdev, struct vfsmount *mnt)
const struct logfs_device_ops *devops, struct vfsmount *mnt)
{ {
struct super_block *sb; struct super_block *sb;
int err = -ENOMEM; int err = -ENOMEM;
...@@ -547,8 +546,6 @@ int logfs_get_sb_device(struct logfs_super *super, ...@@ -547,8 +546,6 @@ int logfs_get_sb_device(struct logfs_super *super,
log_super("LogFS: Start mount %x\n", mount_count++); log_super("LogFS: Start mount %x\n", mount_count++);
super->s_mtd = mtd;
super->s_bdev = bdev;
err = -EINVAL; err = -EINVAL;
sb = sget(type, logfs_sb_test, logfs_sb_set, super); sb = sget(type, logfs_sb_test, logfs_sb_set, super);
if (IS_ERR(sb)) if (IS_ERR(sb))
...@@ -561,8 +558,6 @@ int logfs_get_sb_device(struct logfs_super *super, ...@@ -561,8 +558,6 @@ int logfs_get_sb_device(struct logfs_super *super,
goto err0; goto err0;
} }
super->s_devops = devops;
/* /*
* sb->s_maxbytes is limited to 8TB. On 32bit systems, the page cache * sb->s_maxbytes is limited to 8TB. On 32bit systems, the page cache
* only covers 16TB and the upper 8TB are used for indirect blocks. * only covers 16TB and the upper 8TB are used for indirect blocks.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment