logfs get_sb, part 2
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 26 Jul 2010 07:33:39 +0000 (11:33 +0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 29 Oct 2010 08:16:43 +0000 (04:16 -0400)
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>
fs/logfs/dev_bdev.c
fs/logfs/dev_mtd.c
fs/logfs/logfs.h
fs/logfs/super.c

index bca8e2a..a322fec 100644 (file)
@@ -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);
 }
index e886cdc..7b22d57 100644 (file)
@@ -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);
 }
index a3f0aba..bdd56fa 100644 (file)
@@ -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);
 
index 5e43178..c80837e 100644 (file)
@@ -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.