diff options
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/pstore/ram.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index f753f3b6f88d..487ee39b438a 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -407,6 +407,17 @@ static int notrace ramoops_pstore_write(struct pstore_record *record)  	prz = cxt->dprzs[cxt->dump_write_cnt]; +	/* +	 * Since this is a new crash dump, we need to reset the buffer in +	 * case it still has an old dump present. Without this, the new dump +	 * will get appended, which would seriously confuse anything trying +	 * to check dump file contents. Specifically, ramoops_read_kmsg_hdr() +	 * expects to find a dump header in the beginning of buffer data, so +	 * we must to reset the buffer values, in order to ensure that the +	 * header will be written to the beginning of the buffer. +	 */ +	persistent_ram_zap(prz); +  	/* Build header and append record contents. */  	hlen = ramoops_write_kmsg_hdr(prz, record);  	if (!hlen)  | 
