Skip to content

Commit 7c6455e

Browse files
author
Al Viro
committed
configfs: register_filesystem() called too early
Signed-off-by: Al Viro <[email protected]>
1 parent 988f032 commit 7c6455e

File tree

2 files changed

+18
-20
lines changed

2 files changed

+18
-20
lines changed

fs/configfs/inode.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ int __init configfs_inode_init(void)
292292
return bdi_init(&configfs_backing_dev_info);
293293
}
294294

295-
void __exit configfs_inode_exit(void)
295+
void configfs_inode_exit(void)
296296
{
297297
bdi_destroy(&configfs_backing_dev_info);
298298
}

fs/configfs/mount.c

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -143,28 +143,26 @@ static int __init configfs_init(void)
143143
goto out;
144144

145145
config_kobj = kobject_create_and_add("config", kernel_kobj);
146-
if (!config_kobj) {
147-
kmem_cache_destroy(configfs_dir_cachep);
148-
configfs_dir_cachep = NULL;
149-
goto out;
150-
}
146+
if (!config_kobj)
147+
goto out2;
148+
149+
err = configfs_inode_init();
150+
if (err)
151+
goto out3;
151152

152153
err = register_filesystem(&configfs_fs_type);
153-
if (err) {
154-
printk(KERN_ERR "configfs: Unable to register filesystem!\n");
155-
kobject_put(config_kobj);
156-
kmem_cache_destroy(configfs_dir_cachep);
157-
configfs_dir_cachep = NULL;
158-
goto out;
159-
}
154+
if (err)
155+
goto out4;
160156

161-
err = configfs_inode_init();
162-
if (err) {
163-
unregister_filesystem(&configfs_fs_type);
164-
kobject_put(config_kobj);
165-
kmem_cache_destroy(configfs_dir_cachep);
166-
configfs_dir_cachep = NULL;
167-
}
157+
return 0;
158+
out4:
159+
printk(KERN_ERR "configfs: Unable to register filesystem!\n");
160+
configfs_inode_exit();
161+
out3:
162+
kobject_put(config_kobj);
163+
out2:
164+
kmem_cache_destroy(configfs_dir_cachep);
165+
configfs_dir_cachep = NULL;
168166
out:
169167
return err;
170168
}

0 commit comments

Comments
 (0)