Messages in this thread | | | From | Seiji Aguchi <> | Subject | RE: [PATCH 2/2] pstore: Differentiating names by adding count and timestamp | Date | Wed, 30 Oct 2013 14:38:13 +0000 |
| |
> -----Original Message----- > From: Madper Xie [mailto:cxie@redhat.com] > Sent: Wednesday, October 30, 2013 5:45 AM > To: tony.luck@intel.com; keescook@chromium.org; ccross@android.com; anton@enomsg.org; Seiji Aguchi > Cc: linux-efi@vger.kernel.org; linux-kernel@vger.kernel.org; bbboson@gmail.com; Madper Xie > Subject: [PATCH 2/2] pstore: Differentiating names by adding count and timestamp > > From: Madper Xie <bbboson@gmail.com> > > pstore denominates dumped file as type-psname-id. it makes many file have > the same name if there are many entries in backend have the same id. > So adding count and timestamp to file name for differentiating. > > Signed-off-by: Madper Xie <cxie@redhat.com>
It should be tested by other drivers as well.. But, looks good to me. Acked-by: Seiji Aguchi <seiji.aguchi@hds.com>
> --- > fs/pstore/inode.c | 29 ++++++++++++++++++----------- > 1 file changed, 18 insertions(+), 11 deletions(-) > > diff --git a/fs/pstore/inode.c b/fs/pstore/inode.c > index 0ae994c..36b502f 100644 > --- a/fs/pstore/inode.c > +++ b/fs/pstore/inode.c > @@ -285,7 +285,7 @@ int pstore_mkfile(enum pstore_type_id type, char *psname, u64 id, int count, > int rc = 0; > char name[PSTORE_NAMELEN]; > struct pstore_private *private, *pos; > - unsigned long flags; > + unsigned long flags, timestamp; > > spin_lock_irqsave(&allpstore_lock, flags); > list_for_each_entry(pos, &allpstore, list) { > @@ -316,35 +316,42 @@ int pstore_mkfile(enum pstore_type_id type, char *psname, u64 id, int count, > private->count = count; > private->psi = psi; > memcpy(&private->time, &time, sizeof(struct timespec)); > + timestamp = time.tv_sec; > > switch (type) { > case PSTORE_TYPE_DMESG: > - sprintf(name, "dmesg-%s-%lld%s", psname, id, > - compressed ? ".enc.z" : ""); > + sprintf(name, "dmesg-%s-%lld-%d-%ld%s", psname, id, count, > + timestamp, compressed ? ".enc.z" : ""); > break; > case PSTORE_TYPE_CONSOLE: > - sprintf(name, "console-%s", psname); > + sprintf(name, "console-%s-%d-%ld", psname, count, timestamp); > break; > case PSTORE_TYPE_FTRACE: > - sprintf(name, "ftrace-%s", psname); > + sprintf(name, "ftrace-%s-%d-%ld", psname, count, timestamp); > break; > case PSTORE_TYPE_MCE: > - sprintf(name, "mce-%s-%lld", psname, id); > + sprintf(name, "mce-%s-%lld-%d-%ld", psname, id, count, > + timestamp); > break; > case PSTORE_TYPE_PPC_RTAS: > - sprintf(name, "rtas-%s-%lld", psname, id); > + sprintf(name, "rtas-%s-%lld-%d-%ld", psname, id, count, > + timestamp); > break; > case PSTORE_TYPE_PPC_OF: > - sprintf(name, "powerpc-ofw-%s-%lld", psname, id); > + sprintf(name, "powerpc-ofw-%s-%lld-%d-%ld", psname, id, count, > + timestamp); > break; > case PSTORE_TYPE_PPC_COMMON: > - sprintf(name, "powerpc-common-%s-%lld", psname, id); > + sprintf(name, "powerpc-common-%s-%lld-%d-%ld", psname, id, > + count, timestamp); > break; > case PSTORE_TYPE_UNKNOWN: > - sprintf(name, "unknown-%s-%lld", psname, id); > + sprintf(name, "unknown-%s-%lld-%d-%ld", psname, id, count, > + timestamp); > break; > default: > - sprintf(name, "type%d-%s-%lld", type, psname, id); > + sprintf(name, "type%d-%s-%lld-%d-%ld", type, psname, id, count, > + timestamp); > break; > } > > -- > 1.8.4.2
| |