summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorTony Luck <tony.luck@intel.com>2011-05-20 21:34:50 +0400
committerTony Luck <tony.luck@intel.com>2011-05-20 21:34:50 +0400
commit3935bb949f360b5c8fbf7da268deb81d225d7b93 (patch)
tree26909a230ab28410720c845e834be8552b831d4c /fs
parent61c4f2c81c61f73549928dfd9f3e8f26aa36a8cf (diff)
parent5d2a8342f64e93c217fcbf3206ec9ae770b1413d (diff)
downloadlinux-3935bb949f360b5c8fbf7da268deb81d225d7b93.tar.xz
Pull pstore into release branch
Diffstat (limited to 'fs')
-rw-r--r--fs/pstore/platform.c12
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)