aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/pstore/inode.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
index 0e806aafe85..549d245d0b4 100644
--- a/fs/pstore/inode.c
+++ b/fs/pstore/inode.c
@@ -256,23 +256,28 @@ static struct file_system_type pstore_fs_type = {
static int __init init_pstore_fs(void)
{
- int ret = 0;
+ int rc = 0;
struct kobject *pstorefs_kobj;
pstorefs_kobj = kobject_create_and_add("pstore", fs_kobj);
- if (!pstorefs_kobj)
- return -ENOMEM;
+ if (!pstorefs_kobj) {
+ rc = -ENOMEM;
+ goto done;
+ }
- sysfs_create_file(pstorefs_kobj, &pstore_kmsg_bytes_attr.attr);
+ rc = sysfs_create_file(pstorefs_kobj, &pstore_kmsg_bytes_attr.attr);
+ if (rc)
+ goto done1;
- ret = register_filesystem(&pstore_fs_type);
+ rc = register_filesystem(&pstore_fs_type);
+ if (rc == 0)
+ goto done;
- if (ret) {
- sysfs_remove_file(pstorefs_kobj, &pstore_kmsg_bytes_attr.attr);
- kobject_put(pstorefs_kobj);
- }
-
- return ret;
+ sysfs_remove_file(pstorefs_kobj, &pstore_kmsg_bytes_attr.attr);
+done1:
+ kobject_put(pstorefs_kobj);
+done:
+ return rc;
}
module_init(init_pstore_fs)