pstore: Create a convenient mount point for pstore

Using /dev/pstore as a mount point for the pstore filesystem is slightly
awkward.  We don't normally mount filesystems in /dev/ and the /dev/pstore
file isn't created automatically by anything.  While this method will
still work, we can create a persistent mount point in sysfs.  This will
put pstore on par with things like cgroups and efivarfs.

Signed-off-by: Josh Boyer <jwboyer@redhat.com>
Acked-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
Josh Boyer
2013-02-12 13:07:22 -08:00
committed by Tony Luck
parent a93bc0c6e0
commit fb0af3f2b1
2 changed files with 22 additions and 6 deletions

View File

@@ -1,4 +1,4 @@
Where: /dev/pstore/... Where: /sys/fs/pstore/... (or /dev/pstore/...)
Date: March 2011 Date: March 2011
Kernel Version: 2.6.39 Kernel Version: 2.6.39
Contact: tony.luck@intel.com Contact: tony.luck@intel.com
@@ -11,9 +11,9 @@ Description: Generic interface to platform dependent persistent storage.
of the console log is captured, but other interesting of the console log is captured, but other interesting
data can also be saved. data can also be saved.
# mount -t pstore -o kmsg_bytes=8000 - /dev/pstore # mount -t pstore -o kmsg_bytes=8000 - /sys/fs/pstore
$ ls -l /dev/pstore $ ls -l /sys/fs/pstore/
total 0 total 0
-r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1 -r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1
@@ -27,9 +27,9 @@ Description: Generic interface to platform dependent persistent storage.
the file will signal to the underlying persistent storage the file will signal to the underlying persistent storage
device that it can reclaim the space for later re-use. device that it can reclaim the space for later re-use.
$ rm /dev/pstore/dmesg-erst-1 $ rm /sys/fs/pstore/dmesg-erst-1
The expectation is that all files in /dev/pstore The expectation is that all files in /sys/fs/pstore/
will be saved elsewhere and erased from persistent store will be saved elsewhere and erased from persistent store
soon after boot to free up space ready for the next soon after boot to free up space ready for the next
catastrophe. catastrophe.

View File

@@ -418,9 +418,25 @@ static struct file_system_type pstore_fs_type = {
.kill_sb = pstore_kill_sb, .kill_sb = pstore_kill_sb,
}; };
static struct kobject *pstore_kobj;
static int __init init_pstore_fs(void) static int __init init_pstore_fs(void)
{ {
return register_filesystem(&pstore_fs_type); int err = 0;
/* Create a convenient mount point for people to access pstore */
pstore_kobj = kobject_create_and_add("pstore", fs_kobj);
if (!pstore_kobj) {
err = -ENOMEM;
goto out;
}
err = register_filesystem(&pstore_fs_type);
if (err < 0)
kobject_put(pstore_kobj);
out:
return err;
} }
module_init(init_pstore_fs) module_init(init_pstore_fs)