diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/sysfs/mount.c | 23 |
1 files changed, 7 insertions, 16 deletions
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c index fcbe5e80aeeb..0c80f0379016 100644 --- a/fs/sysfs/mount.c +++ b/fs/sysfs/mount.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include "sysfs.h" | 24 | #include "sysfs.h" |
25 | 25 | ||
26 | 26 | ||
27 | static struct vfsmount *sysfs_mnt; | ||
28 | struct kmem_cache *sysfs_dir_cachep; | 27 | struct kmem_cache *sysfs_dir_cachep; |
29 | 28 | ||
30 | static const struct super_operations sysfs_ops = { | 29 | static const struct super_operations sysfs_ops = { |
@@ -153,34 +152,26 @@ static struct file_system_type sysfs_fs_type = { | |||
153 | 152 | ||
154 | int __init sysfs_init(void) | 153 | int __init sysfs_init(void) |
155 | { | 154 | { |
156 | int err = -ENOMEM; | 155 | int err; |
157 | 156 | ||
158 | sysfs_dir_cachep = kmem_cache_create("sysfs_dir_cache", | 157 | sysfs_dir_cachep = kmem_cache_create("sysfs_dir_cache", |
159 | sizeof(struct sysfs_dirent), | 158 | sizeof(struct sysfs_dirent), |
160 | 0, 0, NULL); | 159 | 0, 0, NULL); |
161 | if (!sysfs_dir_cachep) | 160 | if (!sysfs_dir_cachep) |
162 | goto out; | 161 | return -ENOMEM; |
163 | 162 | ||
164 | err = sysfs_inode_init(); | 163 | err = sysfs_inode_init(); |
165 | if (err) | 164 | if (err) |
166 | goto out_err; | 165 | goto out_err; |
167 | 166 | ||
168 | err = register_filesystem(&sysfs_fs_type); | 167 | err = register_filesystem(&sysfs_fs_type); |
169 | if (!err) { | 168 | if (err) |
170 | sysfs_mnt = kern_mount(&sysfs_fs_type); | ||
171 | if (IS_ERR(sysfs_mnt)) { | ||
172 | printk(KERN_ERR "sysfs: could not mount!\n"); | ||
173 | err = PTR_ERR(sysfs_mnt); | ||
174 | sysfs_mnt = NULL; | ||
175 | unregister_filesystem(&sysfs_fs_type); | ||
176 | goto out_err; | ||
177 | } | ||
178 | } else | ||
179 | goto out_err; | 169 | goto out_err; |
180 | out: | 170 | |
181 | return err; | 171 | return 0; |
172 | |||
182 | out_err: | 173 | out_err: |
183 | kmem_cache_destroy(sysfs_dir_cachep); | 174 | kmem_cache_destroy(sysfs_dir_cachep); |
184 | sysfs_dir_cachep = NULL; | 175 | sysfs_dir_cachep = NULL; |
185 | goto out; | 176 | return err; |
186 | } | 177 | } |