Lines Matching refs:record

339 void pstore_record_init(struct pstore_record *record,  in pstore_record_init()  argument
342 memset(record, 0, sizeof(*record)); in pstore_record_init()
344 record->psi = psinfo; in pstore_record_init()
347 record->time = ns_to_timespec64(ktime_get_real_fast_ns()); in pstore_record_init()
385 struct pstore_record record; in pstore_dump() local
387 pstore_record_init(&record, psinfo); in pstore_dump()
388 record.type = PSTORE_TYPE_DMESG; in pstore_dump()
389 record.count = oopscount; in pstore_dump()
390 record.reason = reason; in pstore_dump()
391 record.part = part; in pstore_dump()
392 record.buf = psinfo->buf; in pstore_dump()
418 record.compressed = true; in pstore_dump()
419 record.size = zipped_len; in pstore_dump()
421 record.size = copy_kmsg_to_buffer(header_size, in pstore_dump()
425 record.size = header_size + dump_size; in pstore_dump()
428 ret = psinfo->write(&record); in pstore_dump()
432 total += record.size; in pstore_dump()
462 struct pstore_record record; in pstore_console_write() local
465 pstore_record_init(&record, psinfo); in pstore_console_write()
466 record.type = PSTORE_TYPE_CONSOLE; in pstore_console_write()
477 record.buf = (char *)s; in pstore_console_write()
478 record.size = c; in pstore_console_write()
479 psinfo->write(&record); in pstore_console_write()
507 static int pstore_write_user_compat(struct pstore_record *record, in pstore_write_user_compat() argument
512 if (record->buf) in pstore_write_user_compat()
515 record->buf = memdup_user(buf, record->size); in pstore_write_user_compat()
516 if (IS_ERR(record->buf)) { in pstore_write_user_compat()
517 ret = PTR_ERR(record->buf); in pstore_write_user_compat()
521 ret = record->psi->write(record); in pstore_write_user_compat()
523 kfree(record->buf); in pstore_write_user_compat()
525 record->buf = NULL; in pstore_write_user_compat()
527 return unlikely(ret < 0) ? ret : record->size; in pstore_write_user_compat()
637 static void decompress_record(struct pstore_record *record) in decompress_record() argument
642 if (!record->compressed) in decompress_record()
646 if (record->type != PSTORE_TYPE_DMESG) { in decompress_record()
647 pr_warn("ignored compressed record type %d\n", record->type); in decompress_record()
657 unzipped_len = pstore_decompress(record->buf, big_oops_buf, in decompress_record()
658 record->size, big_oops_buf_sz); in decompress_record()
665 decompressed = kmalloc(unzipped_len + record->ecc_notice_size, in decompress_record()
674 memcpy(decompressed + unzipped_len, record->buf + record->size, in decompress_record()
675 record->ecc_notice_size); in decompress_record()
678 kfree(record->buf); in decompress_record()
679 record->buf = decompressed; in decompress_record()
680 record->size = unzipped_len; in decompress_record()
681 record->compressed = false; in decompress_record()
709 struct pstore_record *record; in pstore_get_backend_records() local
712 record = kzalloc(sizeof(*record), GFP_KERNEL); in pstore_get_backend_records()
713 if (!record) { in pstore_get_backend_records()
717 pstore_record_init(record, psi); in pstore_get_backend_records()
719 record->size = psi->read(record); in pstore_get_backend_records()
722 if (record->size <= 0) { in pstore_get_backend_records()
723 kfree(record); in pstore_get_backend_records()
727 decompress_record(record); in pstore_get_backend_records()
728 rc = pstore_mkfile(root, record); in pstore_get_backend_records()
731 kfree(record->buf); in pstore_get_backend_records()
732 kfree(record); in pstore_get_backend_records()