Skip to content

Commit

Permalink
pstore: Allow the user to explicitly choose a backend
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Matthew Garrett authored and Tony Luck committed Jul 22, 2011
1 parent b94fdd0 commit dee28e7
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
6 changes: 6 additions & 0 deletions Documentation/ABI/testing/pstore
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,9 @@ Description: Generic interface to platform dependent persistent storage.
multiple) files based on the record size of the underlying
persistent storage until at least this amount is reached.
Default is 10 Kbytes.

Pstore only supports one backend at a time. If multiple
backends are available, the preferred backend may be
set by passing the pstore.backend= argument to the kernel at
boot time.

2 changes: 2 additions & 0 deletions Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2151,6 +2151,8 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
[HW,MOUSE] Controls Logitech smartscroll autorepeat.
0 = disabled, 1 = enabled (default).

pstore.backend= Specify the name of the pstore backend to use

pt. [PARIDE]
See Documentation/blockdev/paride.txt.

Expand Down
11 changes: 11 additions & 0 deletions fs/pstore/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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");

0 comments on commit dee28e7

Please sign in to comment.