Lines Matching refs:record
658 struct pstore_zone *zone, struct pstore_record *record) in psz_kmsg_erase() argument
669 if (record->count != hdr->counter) in psz_kmsg_erase()
699 static int psz_pstore_erase(struct pstore_record *record) in psz_pstore_erase() argument
701 struct psz_context *cxt = record->psi->data; in psz_pstore_erase()
703 switch (record->type) { in psz_pstore_erase()
705 if (record->id >= cxt->kmsg_max_cnt) in psz_pstore_erase()
707 return psz_kmsg_erase(cxt, cxt->kpszs[record->id], record); in psz_pstore_erase()
713 if (record->id >= cxt->ftrace_max_cnt) in psz_pstore_erase()
715 return psz_record_erase(cxt, cxt->fpszs[record->id]); in psz_pstore_erase()
721 struct pstore_record *record) in psz_write_kmsg_hdr() argument
723 struct psz_context *cxt = record->psi->data; in psz_write_kmsg_hdr()
729 hdr->compressed = record->compressed; in psz_write_kmsg_hdr()
730 hdr->time.tv_sec = record->time.tv_sec; in psz_write_kmsg_hdr()
731 hdr->time.tv_nsec = record->time.tv_nsec; in psz_write_kmsg_hdr()
732 hdr->reason = record->reason; in psz_write_kmsg_hdr()
746 struct pstore_record *record) in psz_kmsg_write_record() argument
772 psz_write_kmsg_hdr(zone, record); in psz_kmsg_write_record()
774 size = min_t(size_t, record->size, zone->buffer_size - hlen); in psz_kmsg_write_record()
775 ret = psz_zone_write(zone, FLUSH_ALL, record->buf, size, hlen); in psz_kmsg_write_record()
796 struct pstore_record *record) in psz_kmsg_write() argument
806 if (record->part != 1) in psz_kmsg_write()
812 ret = psz_kmsg_write_record(cxt, record); in psz_kmsg_write()
824 struct pstore_record *record) in psz_record_write() argument
831 if (!zone || !record) in psz_record_write()
837 cnt = record->size; in psz_record_write()
838 buf = record->buf; in psz_record_write()
872 static int notrace psz_pstore_write(struct pstore_record *record) in psz_pstore_write() argument
874 struct psz_context *cxt = record->psi->data; in psz_pstore_write()
876 if (record->type == PSTORE_TYPE_DMESG && in psz_pstore_write()
877 record->reason == KMSG_DUMP_PANIC) in psz_pstore_write()
884 if (is_on_panic() && record->type != PSTORE_TYPE_DMESG) in psz_pstore_write()
887 switch (record->type) { in psz_pstore_write()
889 return psz_kmsg_write(cxt, record); in psz_pstore_write()
891 return psz_record_write(cxt->cpsz, record); in psz_pstore_write()
893 return psz_record_write(cxt->ppsz, record); in psz_pstore_write()
899 return psz_record_write(cxt->fpszs[zonenum], record); in psz_pstore_write()
942 struct pstore_record *record) in psz_kmsg_read_hdr() argument
950 record->compressed = hdr->compressed; in psz_kmsg_read_hdr()
951 record->time.tv_sec = hdr->time.tv_sec; in psz_kmsg_read_hdr()
952 record->time.tv_nsec = hdr->time.tv_nsec; in psz_kmsg_read_hdr()
953 record->reason = hdr->reason; in psz_kmsg_read_hdr()
954 record->count = hdr->counter; in psz_kmsg_read_hdr()
959 struct pstore_record *record) in psz_kmsg_read() argument
965 if (psz_kmsg_read_hdr(zone, record)) { in psz_kmsg_read()
972 if (!record->compressed) { in psz_kmsg_read()
974 kmsg_dump_reason_str(record->reason), in psz_kmsg_read()
975 record->count); in psz_kmsg_read()
977 record->buf = krealloc(buf, hlen + size, GFP_KERNEL); in psz_kmsg_read()
978 if (!record->buf) { in psz_kmsg_read()
983 record->buf = kmalloc(size, GFP_KERNEL); in psz_kmsg_read()
984 if (!record->buf) in psz_kmsg_read()
988 size = psz_zone_read_buffer(zone, record->buf + hlen, size, in psz_kmsg_read()
991 kfree(record->buf); in psz_kmsg_read()
1000 struct pstore_record *record) in psz_ftrace_read() argument
1006 if (!zone || !record) in psz_ftrace_read()
1016 ret = pstore_ftrace_combine_log(&record->buf, &record->size, in psz_ftrace_read()
1022 cxt = record->psi->data; in psz_ftrace_read()
1026 record->id = 0; in psz_ftrace_read()
1027 return record->size ? record->size : -ENOMSG; in psz_ftrace_read()
1031 struct pstore_record *record) in psz_record_read() argument
1036 if (!zone || !record) in psz_record_read()
1044 record->buf = kmalloc(len, GFP_KERNEL); in psz_record_read()
1045 if (!record->buf) in psz_record_read()
1048 if (unlikely(psz_zone_read_oldbuf(zone, record->buf, len, 0))) { in psz_record_read()
1049 kfree(record->buf); in psz_record_read()
1056 static ssize_t psz_pstore_read(struct pstore_record *record) in psz_pstore_read() argument
1058 struct psz_context *cxt = record->psi->data; in psz_pstore_read()
1060 struct pstore_record *record); in psz_pstore_read()
1074 record->type = zone->type; in psz_pstore_read()
1075 switch (record->type) { in psz_pstore_read()
1078 record->id = cxt->kmsg_read_cnt - 1; in psz_pstore_read()
1091 ret = readop(zone, record); in psz_pstore_read()