From 0d85c799623cb6022adb1317ed2987ab9c097c2e Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 26 Jul 2010 11:33:39 +0400 Subject: 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 --- fs/logfs/dev_bdev.c | 6 +++++- fs/logfs/dev_mtd.c | 11 ++++++----- fs/logfs/logfs.h | 3 +-- fs/logfs/super.c | 7 +------ 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/fs/logfs/dev_bdev.c b/fs/logfs/dev_bdev.c index bca8e2a8e55..a322fec1017 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 e886cdcf9d7..7b22d57d146 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 a3f0aba9e52..bdd56fa4b08 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 5e43178add9..c80837e54bb 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. -- cgit v1.2.3-70-g09d2