diff options
author | Tony Luck <tony.luck@intel.com> | 2011-05-20 21:34:50 +0400 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2011-05-20 21:34:50 +0400 |
commit | 3935bb949f360b5c8fbf7da268deb81d225d7b93 (patch) | |
tree | 26909a230ab28410720c845e834be8552b831d4c /fs | |
parent | 61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf (diff) | |
parent | 5d2a8342f64e93c217fcbf3206ec9ae770b1413d (diff) | |
download | linux-3935bb949f360b5c8fbf7da268deb81d225d7b93.tar.xz |
Pull pstore into release branch
Diffstat (limited to 'fs')
-rw-r--r-- | fs/pstore/platform.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/pstore/platform.c b/fs/pstore/platform.c index f835a25625ff..f2c3ff20ea68 100644 --- a/fs/pstore/platform.c +++ b/fs/pstore/platform.c @@ -152,21 +152,27 @@ EXPORT_SYMBOL_GPL(pstore_register); void pstore_get_records(void) { struct pstore_info *psi = psinfo; - size_t size; + ssize_t size; u64 id; enum pstore_type_id type; struct timespec time; - int failed = 0; + int failed = 0, rc; if (!psi) return; mutex_lock(&psinfo->buf_mutex); + rc = psi->open(psi); + if (rc) + goto out; + while ((size = psi->read(&id, &type, &time)) > 0) { - if (pstore_mkfile(type, psi->name, id, psi->buf, size, + if (pstore_mkfile(type, psi->name, id, psi->buf, (size_t)size, time, psi->erase)) failed++; } + psi->close(psi); +out: mutex_unlock(&psinfo->buf_mutex); if (failed) |