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: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
71a1c0125f
commit
0d85c79962
|
@ -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,
|
||||||
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);
|
||||||
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)
|
||||||
|
|
||||||
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,
|
||||||
|
|
||||||
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,
|
||||||
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.
|
||||||
|
|
Loading…
Reference in New Issue