OSDN Git Service

pstore: Centralize init/exit routines
authorKees Cook <keescook@chromium.org>
Thu, 18 Oct 2018 18:17:42 +0000 (11:17 -0700)
committerKees Cook <keescook@chromium.org>
Mon, 22 Oct 2018 14:11:58 +0000 (07:11 -0700)
In preparation for having additional actions during init/exit, this moves
the init/exit into platform.c, centralizing the logic to make call outs
to the fs init/exit.

Signed-off-by: Kees Cook <keescook@chromium.org>
Tested-by: Guenter Roeck <groeck@chromium.org>
fs/pstore/inode.c
fs/pstore/internal.h
fs/pstore/platform.c

index 5fcb845..8cf2218 100644 (file)
@@ -482,12 +482,10 @@ static struct file_system_type pstore_fs_type = {
        .kill_sb        = pstore_kill_sb,
 };
 
-static int __init init_pstore_fs(void)
+int __init pstore_init_fs(void)
 {
        int err;
 
-       pstore_choose_compression();
-
        /* Create a convenient mount point for people to access pstore */
        err = sysfs_create_mount_point(fs_kobj, "pstore");
        if (err)
@@ -500,14 +498,9 @@ static int __init init_pstore_fs(void)
 out:
        return err;
 }
-module_init(init_pstore_fs)
 
-static void __exit exit_pstore_fs(void)
+void __exit pstore_exit_fs(void)
 {
        unregister_filesystem(&pstore_fs_type);
        sysfs_remove_mount_point(fs_kobj, "pstore");
 }
-module_exit(exit_pstore_fs)
-
-MODULE_AUTHOR("Tony Luck <tony.luck@intel.com>");
-MODULE_LICENSE("GPL");
index fb767e2..7062ea4 100644 (file)
@@ -37,7 +37,8 @@ extern bool   pstore_is_mounted(void);
 extern void    pstore_record_init(struct pstore_record *record,
                                   struct pstore_info *psi);
 
-/* Called during module_init() */
-extern void __init pstore_choose_compression(void);
+/* Called during pstore init/exit. */
+int __init     pstore_init_fs(void);
+void __exit    pstore_exit_fs(void);
 
 #endif
index 15e99d5..d61e268 100644 (file)
@@ -780,8 +780,31 @@ void __init pstore_choose_compression(void)
        }
 }
 
+static int __init pstore_init(void)
+{
+       int ret;
+
+       pstore_choose_compression();
+
+       ret = pstore_init_fs();
+       if (ret)
+               return ret;
+
+       return 0;
+}
+module_init(pstore_init)
+
+static void __exit pstore_exit(void)
+{
+       pstore_exit_fs();
+}
+module_exit(pstore_exit)
+
 module_param(compress, charp, 0444);
 MODULE_PARM_DESC(compress, "Pstore compression to use");
 
 module_param(backend, charp, 0444);
 MODULE_PARM_DESC(backend, "Pstore backend to use");
+
+MODULE_AUTHOR("Tony Luck <tony.luck@intel.com>");
+MODULE_LICENSE("GPL");