pstore: Avoid writing records with zero size
Sometimes pstore_console_write() will write records with zero size to persistent ram zone, which is unnecessary. It will only increase resource consumption. Also adjust ramoops_write_kmsg_hdr() to have same logic if memory allocation fails. Signed-off-by: Yue Hu <huyue2@yulong.com> Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:
parent
182ca6e0ae
commit
4c6c4d3453
|
@ -501,6 +501,9 @@ static void pstore_console_write(struct console *con, const char *s, unsigned c)
|
||||||
{
|
{
|
||||||
struct pstore_record record;
|
struct pstore_record record;
|
||||||
|
|
||||||
|
if (!c)
|
||||||
|
return;
|
||||||
|
|
||||||
pstore_record_init(&record, psinfo);
|
pstore_record_init(&record, psinfo);
|
||||||
record.type = PSTORE_TYPE_CONSOLE;
|
record.type = PSTORE_TYPE_CONSOLE;
|
||||||
|
|
||||||
|
|
|
@ -352,8 +352,10 @@ static size_t ramoops_write_kmsg_hdr(struct persistent_ram_zone *prz,
|
||||||
(time64_t)record->time.tv_sec,
|
(time64_t)record->time.tv_sec,
|
||||||
record->time.tv_nsec / 1000,
|
record->time.tv_nsec / 1000,
|
||||||
record->compressed ? 'C' : 'D');
|
record->compressed ? 'C' : 'D');
|
||||||
WARN_ON_ONCE(!hdr);
|
if (WARN_ON_ONCE(!hdr))
|
||||||
len = hdr ? strlen(hdr) : 0;
|
return 0;
|
||||||
|
|
||||||
|
len = strlen(hdr);
|
||||||
persistent_ram_write(prz, hdr, len);
|
persistent_ram_write(prz, hdr, len);
|
||||||
kfree(hdr);
|
kfree(hdr);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue