]> git.hungrycats.org Git - linux/commitdiff
[PATCH] (3/9) more ->get_sb() stuff
authorAlexander Viro <viro@math.psu.edu>
Wed, 6 Feb 2002 14:34:43 +0000 (06:34 -0800)
committerLinus Torvalds <torvalds@athlon.transmeta.com>
Wed, 6 Feb 2002 14:34:43 +0000 (06:34 -0800)
More ->get_sb() patches: pipefs

fs/pipe.c

index 5a053913f5d6f5f1349c65e372745cdba6dc53e5..90734730ca628046c30d51f3d45540d88672e912 100644 (file)
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -600,7 +600,7 @@ static struct super_operations pipefs_ops = {
        statfs:         pipefs_statfs,
 };
 
-static struct super_block * pipefs_read_super(struct super_block *sb, void *data, int silent)
+static int pipefs_fill_super(struct super_block *sb, void *data, int silent)
 {
        struct inode *root;
 
@@ -610,22 +610,32 @@ static struct super_block * pipefs_read_super(struct super_block *sb, void *data
        sb->s_op        = &pipefs_ops;
        root = new_inode(sb);
        if (!root)
-               return NULL;
+               return -ENOMEM;
        root->i_mode = S_IFDIR | S_IRUSR | S_IWUSR;
        root->i_uid = root->i_gid = 0;
        root->i_atime = root->i_mtime = root->i_ctime = CURRENT_TIME;
        sb->s_root = d_alloc(NULL, &(const struct qstr) { "pipe:", 5, 0 });
        if (!sb->s_root) {
                iput(root);
-               return NULL;
+               return -ENOMEM;
        }
        sb->s_root->d_sb = sb;
        sb->s_root->d_parent = sb->s_root;
        d_instantiate(sb->s_root, root);
-       return sb;
+       return 0;
 }
 
-static DECLARE_FSTYPE(pipe_fs_type, "pipefs", pipefs_read_super, FS_NOMOUNT);
+static struct super_block *pipefs_get_sb(struct file_system_type *fs_type,
+       int flags, char *dev_name, void *data)
+{
+       return get_sb_nodev(fs_type, flags, data, pipefs_fill_super);
+}
+
+static struct file_system_type pipe_fs_type = {
+       name:           "pipefs",
+       get_sb:         pipefs_get_sb,
+       fs_flags:       FS_NOMOUNT,
+};
 
 static int __init init_pipe_fs(void)
 {