pstore: fix pstore filesystem mount/remount issue

Currently after mount/remount operation on pstore filesystem,
the content on pstore will be lost. It is because current ERST
implementation doesn't support multi-user usage, which moves
internal pointer to the end after accessing it. Adding
multi-user support for pstore usage.

Signed-off-by: Chen Gong <gong.chen@linux.intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
Chen Gong
2011-05-16 11:00:27 -07:00
committed by Tony Luck
parent 8d38d74b64
commit 06cf91b4b4
3 changed files with 44 additions and 14 deletions

View File

@@ -156,17 +156,23 @@ void pstore_get_records(void)
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_t)size,
time, psi->erase))
failed++;
}
psi->close(psi);
out:
mutex_unlock(&psinfo->buf_mutex);
if (failed)