linux-efi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] pstore: avoid incorrectly mark entry as duplicate
@ 2013-10-23 14:55 Madper Xie
  2013-10-23 15:58 ` Richard Weinberger
       [not found] ` <87r4bcdok1.fsf-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
  0 siblings, 2 replies; 6+ messages in thread
From: Madper Xie @ 2013-10-23 14:55 UTC (permalink / raw)
  To: Luck, Tony, Anton Vorontsov, linux-efi@vger.kernel.org,
	linux-kernel@vger.kernel.org, Seiji Aguchi, Lenny Szubowicz
  Cc: 成骏 谢

pstore try to find duplicate entries by check both ID, type and psi.
They are not really enough for efi backend. dumped vars always have
the same type, psi and ID. like follows:
dump-type0-9-1-1382511508-C-cfc8fc79-be2e-4ddc-97f0-9f98bfe298a0
dump-type0-9-1-1382515661-C-cfc8fc79-be2e-4ddc-97f0-9f98bfe298a0

The "duplicate" entries won't appear in pstorefs. And a complain will be
print -- pstore: failed to load 76 record(s) from 'efi'
So I add one more check: timespec.

Signed-off-by: Madper Xie <cxie-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
---
 fs/pstore/inode.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c
index 1282384..f70f1e5 100644
--- a/fs/pstore/inode.c
+++ b/fs/pstore/inode.c
@@ -47,6 +47,7 @@ static LIST_HEAD(allpstore);
 struct pstore_private {
 	struct list_head list;
 	struct pstore_info *psi;
+	struct timespec time;
 	enum pstore_type_id type;
 	u64	id;
 	int	count;
@@ -290,7 +291,8 @@ int pstore_mkfile(enum pstore_type_id type, char *psname, u64 id, int count,
 	list_for_each_entry(pos, &allpstore, list) {
 		if (pos->type == type &&
 		    pos->id == id &&
-		    pos->psi == psi) {
+		    pos->psi == psi &&
+		    !timespec_compare(&pos->time, &time)) {
 			rc = -EEXIST;
 			break;
 		}
@@ -312,6 +314,7 @@ int pstore_mkfile(enum pstore_type_id type, char *psname, u64 id, int count,
 	private->id = id;
 	private->count = count;
 	private->psi = psi;
+	memcpy(&private->time, &time, sizeof(struct timespec));
 
 	switch (type) {
 	case PSTORE_TYPE_DMESG:
-- 
1.8.4.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2013-10-28 13:36 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-23 14:55 [PATCH] pstore: avoid incorrectly mark entry as duplicate Madper Xie
2013-10-23 15:58 ` Richard Weinberger
     [not found]   ` <CAFLxGvxT1S3km=LordqFGbAb_pWc0cf3oE2ciS9uY4BBJJ231A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-10-23 16:11     ` Madper Xie
     [not found] ` <87r4bcdok1.fsf-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-10-23 21:57   ` Tony Luck
2013-10-24  0:21     ` Madper Xie
     [not found]       ` <87k3h35xij.fsf-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-10-28 13:36         ` Madper Xie

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).