fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / fs / sysfs / mount.c
index 95d8229..c361ab4 100644 (file)
@@ -14,7 +14,7 @@
 
 struct vfsmount *sysfs_mount;
 struct super_block * sysfs_sb = NULL;
-kmem_cache_t *sysfs_dir_cachep;
+struct kmem_cache *sysfs_dir_cachep;
 
 static struct super_operations sysfs_ops = {
        .statfs         = simple_statfs,
@@ -26,6 +26,7 @@ static struct sysfs_dirent sysfs_root = {
        .s_children     = LIST_HEAD_INIT(sysfs_root.s_children),
        .s_element      = NULL,
        .s_type         = SYSFS_ROOT,
+       .s_iattr        = NULL,
 };
 
 static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
@@ -40,12 +41,13 @@ static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
        sb->s_time_gran = 1;
        sysfs_sb = sb;
 
-       inode = sysfs_new_inode(S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO);
+       inode = sysfs_new_inode(S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO,
+                                &sysfs_root);
        if (inode) {
                inode->i_op = &sysfs_dir_inode_operations;
                inode->i_fop = &sysfs_dir_operations;
                /* directory inodes start off with i_nlink == 2 (for "." entry) */
-               inode->i_nlink++;       
+               inc_nlink(inode);
        } else {
                pr_debug("sysfs: could not get root inode\n");
                return -ENOMEM;
@@ -62,10 +64,10 @@ static int sysfs_fill_super(struct super_block *sb, void *data, int silent)
        return 0;
 }
 
-static struct super_block *sysfs_get_sb(struct file_system_type *fs_type,
-       int flags, const char *dev_name, void *data)
+static int sysfs_get_sb(struct file_system_type *fs_type,
+       int flags, const char *dev_name, void *data, struct vfsmount *mnt)
 {
-       return get_sb_single(fs_type, flags, data, sysfs_fill_super);
+       return get_sb_single(fs_type, flags, data, sysfs_fill_super, mnt);
 }
 
 static struct file_system_type sysfs_fs_type = {