pstore: Centralize init/exit routines

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>
This commit is contained in:
Kees Cook 2018-10-18 11:17:42 -07:00
parent 57361846b5
commit cb095afd44
3 changed files with 28 additions and 11 deletions

View 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");

View 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

View 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");