aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Boyer <jwboyer@redhat.com>2013-02-12 16:07:22 -0500
committerTony Luck <tony.luck@intel.com>2013-02-12 16:07:22 -0500
commitfb0af3f2b1b613e5ea75426d454c7e5b1d1eef49 (patch)
tree2ef5fd07b1684073d1b0d2fea0466e38466f92a8
parenta93bc0c6e07ed9bac44700280e65e2945d864fd4 (diff)
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>
-rw-r--r--Documentation/ABI/testing/pstore10
-rw-r--r--fs/pstore/inode.c18
2 files changed, 22 insertions, 6 deletions
diff --git a/Documentation/ABI/testing/pstore b/Documentation/ABI/testing/pstore
index ff1df4e3b059..5fca9f5e10a3 100644
--- a/Documentation/ABI/testing/pstore
+++ b/Documentation/ABI/testing/pstore
@@ -1,4 +1,4 @@
1Where: /dev/pstore/... 1Where: /sys/fs/pstore/... (or /dev/pstore/...)
2Date: March 2011 2Date: March 2011
3Kernel Version: 2.6.39 3Kernel Version: 2.6.39
4Contact: tony.luck@intel.com 4Contact: tony.luck@intel.com
@@ -11,9 +11,9 @@ Description: Generic interface to platform dependent persistent storage.
11 of the console log is captured, but other interesting 11 of the console log is captured, but other interesting
12 data can also be saved. 12 data can also be saved.
13 13
14 # mount -t pstore -o kmsg_bytes=8000 - /dev/pstore 14 # mount -t pstore -o kmsg_bytes=8000 - /sys/fs/pstore
15 15
16 $ ls -l /dev/pstore 16 $ ls -l /sys/fs/pstore/
17 total 0 17 total 0
18 -r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1 18 -r--r--r-- 1 root root 7896 Nov 30 15:38 dmesg-erst-1
19 19
@@ -27,9 +27,9 @@ Description: Generic interface to platform dependent persistent storage.
27 the file will signal to the underlying persistent storage 27 the file will signal to the underlying persistent storage
28 device that it can reclaim the space for later re-use. 28 device that it can reclaim the space for later re-use.
29 29
30 $ rm /dev/pstore/dmesg-erst-1 30 $ rm /sys/fs/pstore/dmesg-erst-1
31 31
32 The expectation is that all files in /dev/pstore 32 The expectation is that all files in /sys/fs/pstore/
33 will be saved elsewhere and erased from persistent store 33 will be saved elsewhere and erased from persistent store
34 soon after boot to free up space ready for the next 34 soon after boot to free up space ready for the next
35 catastrophe. 35 catastrophe.
diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
index 67de74ca85f4..e4bcb2cf055a 100644
--- a/fs/pstore/inode.c
+++ b/fs/pstore/inode.c
@@ -418,9 +418,25 @@ static struct file_system_type pstore_fs_type = {
418 .kill_sb = pstore_kill_sb, 418 .kill_sb = pstore_kill_sb,
419}; 419};
420 420
421static struct kobject *pstore_kobj;
422
421static int __init init_pstore_fs(void) 423static int __init init_pstore_fs(void)
422{ 424{
423 return register_filesystem(&pstore_fs_type); 425 int err = 0;
426
427 /* Create a convenient mount point for people to access pstore */
428 pstore_kobj = kobject_create_and_add("pstore", fs_kobj);
429 if (!pstore_kobj) {
430 err = -ENOMEM;
431 goto out;
432 }
433
434 err = register_filesystem(&pstore_fs_type);
435 if (err < 0)
436 kobject_put(pstore_kobj);
437
438out:
439 return err;
424} 440}
425module_init(init_pstore_fs) 441module_init(init_pstore_fs)
426 442