diff options
author | Josh Boyer <jwboyer@redhat.com> | 2013-02-12 16:07:22 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2013-02-12 16:07:22 -0500 |
commit | fb0af3f2b1b613e5ea75426d454c7e5b1d1eef49 (patch) | |
tree | 2ef5fd07b1684073d1b0d2fea0466e38466f92a8 | |
parent | a93bc0c6e07ed9bac44700280e65e2945d864fd4 (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/pstore | 10 | ||||
-rw-r--r-- | fs/pstore/inode.c | 18 |
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 @@ | |||
1 | Where: /dev/pstore/... | 1 | Where: /sys/fs/pstore/... (or /dev/pstore/...) |
2 | Date: March 2011 | 2 | Date: March 2011 |
3 | Kernel Version: 2.6.39 | 3 | Kernel Version: 2.6.39 |
4 | Contact: tony.luck@intel.com | 4 | Contact: 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 | ||
421 | static struct kobject *pstore_kobj; | ||
422 | |||
421 | static int __init init_pstore_fs(void) | 423 | static 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 | |||
438 | out: | ||
439 | return err; | ||
424 | } | 440 | } |
425 | module_init(init_pstore_fs) | 441 | module_init(init_pstore_fs) |
426 | 442 | ||