Browse Source

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>
Josh Boyer 12 years ago
parent
commit
fb0af3f2b1
2 changed files with 22 additions and 6 deletions
  1. 5 5
      Documentation/ABI/testing/pstore
  2. 17 1
      fs/pstore/inode.c

+ 5 - 5
Documentation/ABI/testing/pstore

@@ -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.

+ 17 - 1
fs/pstore/inode.c

@@ -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)