From: Al Viro Date: Mon, 26 Jul 2010 07:33:39 +0000 (+0400) Subject: logfs get_sb, part 2 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=0d85c799623cb6022adb1317ed2987ab9c097c2e;p=openwrt%2Fstaging%2Fblogic.git 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 --- diff --git a/fs/logfs/dev_bdev.c b/fs/logfs/dev_bdev.c index bca8e2a8e55b..a322fec10173 100644 --- a/fs/logfs/dev_bdev.c +++ b/fs/logfs/dev_bdev.c @@ -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_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); } diff --git a/fs/logfs/dev_mtd.c b/fs/logfs/dev_mtd.c index e886cdcf9d7e..7b22d57d1469 100644 --- a/fs/logfs/dev_mtd.c +++ b/fs/logfs/dev_mtd.c @@ -269,13 +269,14 @@ int logfs_get_sb_mtd(struct logfs_super *s, struct file_system_type *type, int flags, int mtdnr, struct vfsmount *mnt) { - struct mtd_info *mtd; - const struct logfs_device_ops *devops = &mtd_devops; - - mtd = get_mtd_device(NULL, mtdnr); + struct mtd_info *mtd = get_mtd_device(NULL, mtdnr); if (IS_ERR(mtd)) { kfree(s); 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); } diff --git a/fs/logfs/logfs.h b/fs/logfs/logfs.h index a3f0aba9e526..bdd56fa4b084 100644 --- a/fs/logfs/logfs.h +++ b/fs/logfs/logfs.h @@ -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_get_sb_device(struct logfs_super *s, struct file_system_type *type, int flags, - struct mtd_info *mtd, struct block_device *bdev, - const struct logfs_device_ops *devops, struct vfsmount *mnt); + struct vfsmount *mnt); int logfs_check_ds(struct logfs_disk_super *ds); int logfs_write_sb(struct super_block *sb); diff --git a/fs/logfs/super.c b/fs/logfs/super.c index 5e43178add98..c80837e54bb3 100644 --- a/fs/logfs/super.c +++ b/fs/logfs/super.c @@ -538,8 +538,7 @@ static void logfs_kill_sb(struct super_block *sb) int logfs_get_sb_device(struct logfs_super *super, struct file_system_type *type, int flags, - struct mtd_info *mtd, struct block_device *bdev, - const struct logfs_device_ops *devops, struct vfsmount *mnt) + struct vfsmount *mnt) { struct super_block *sb; 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++); - super->s_mtd = mtd; - super->s_bdev = bdev; err = -EINVAL; sb = sget(type, logfs_sb_test, logfs_sb_set, super); if (IS_ERR(sb)) @@ -561,8 +558,6 @@ int logfs_get_sb_device(struct logfs_super *super, goto err0; } - super->s_devops = devops; - /* * 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.