diff options
author | Matthew Garrett <mjg@redhat.com> | 2011-07-21 16:57:55 -0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2011-07-22 16:14:39 -0700 |
commit | dee28e72b619b48ec80a9e5509db458dbe66f71f (patch) | |
tree | 781ef74fc42193f05877af53fe0787d175181bd7 /fs | |
parent | b94fdd077eef5e6cab56836bf62695b497946716 (diff) | |
download | op-kernel-dev-dee28e72b619b48ec80a9e5509db458dbe66f71f.zip op-kernel-dev-dee28e72b619b48ec80a9e5509db458dbe66f71f.tar.gz |
pstore: Allow the user to explicitly choose a backend
pstore only allows one backend to be registered at present, but the
system may provide several. Add a parameter to allow the user to choose
which backend will be used rather than just relying on load order.
Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/pstore/platform.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index 49ff1de..c5300ec 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -37,6 +37,8 @@ static DEFINE_SPINLOCK(pstore_lock); static struct pstore_info *psinfo; +static char *backend; + /* How much of the console log to snapshot */ static unsigned long kmsg_bytes = 10240; @@ -131,6 +133,12 @@ int pstore_register(struct pstore_info *psi) spin_unlock(&pstore_lock); return -EBUSY; } + + if (backend && strcmp(backend, psi->name)) { + spin_unlock(&pstore_lock); + return -EINVAL; + } + psinfo = psi; spin_unlock(&pstore_lock); @@ -208,3 +216,6 @@ int pstore_write(enum pstore_type_id type, char *buf, size_t size) return 0; } EXPORT_SYMBOL_GPL(pstore_write); + +module_param(backend, charp, 0444); +MODULE_PARM_DESC(backend, "Pstore backend to use"); |