Lines Matching refs:record

669 		struct pstore_zone *zone, struct pstore_record *record)
680 if (record->count != hdr->counter)
710 static int psz_pstore_erase(struct pstore_record *record)
712 struct psz_context *cxt = record->psi->data;
714 switch (record->type) {
716 if (record->id >= cxt->kmsg_max_cnt)
718 return psz_kmsg_erase(cxt, cxt->kpszs[record->id], record);
724 if (record->id >= cxt->ftrace_max_cnt)
726 return psz_record_erase(cxt, cxt->fpszs[record->id]);
734 struct pstore_record *record)
736 struct psz_context *cxt = record->psi->data;
742 hdr->compressed = record->compressed;
743 hdr->time.tv_sec = record->time.tv_sec;
744 hdr->time.tv_nsec = record->time.tv_nsec;
745 hdr->reason = record->reason;
759 struct pstore_record *record)
785 psz_write_kmsg_hdr(zone, record);
787 size = min_t(size_t, record->size, zone->buffer_size - hlen);
788 ret = psz_zone_write(zone, FLUSH_ALL, record->buf, size, hlen);
809 struct pstore_record *record)
819 if (record->part != 1)
825 ret = psz_kmsg_write_record(cxt, record);
837 struct pstore_record *record)
844 if (!zone || !record)
850 cnt = record->size;
851 buf = record->buf;
885 static int notrace psz_pstore_write(struct pstore_record *record)
887 struct psz_context *cxt = record->psi->data;
889 if (record->type == PSTORE_TYPE_DMESG &&
890 record->reason == KMSG_DUMP_PANIC)
897 if (is_on_panic() && record->type != PSTORE_TYPE_DMESG)
900 switch (record->type) {
902 return psz_kmsg_write(cxt, record);
904 return psz_record_write(cxt->cpsz, record);
906 return psz_record_write(cxt->ppsz, record);
912 return psz_record_write(cxt->fpszs[zonenum], record);
915 return psz_record_write(cxt->bpsz, record);
964 struct pstore_record *record)
972 record->compressed = hdr->compressed;
973 record->time.tv_sec = hdr->time.tv_sec;
974 record->time.tv_nsec = hdr->time.tv_nsec;
975 record->reason = hdr->reason;
976 record->count = hdr->counter;
981 struct pstore_record *record)
986 /* Clear and skip this kmsg dump record if it has no valid header */
987 if (psz_kmsg_read_hdr(zone, record)) {
994 if (!record->compressed) {
996 kmsg_dump_reason_str(record->reason),
997 record->count);
999 record->buf = krealloc(buf, hlen + size, GFP_KERNEL);
1000 if (!record->buf) {
1005 record->buf = kmalloc(size, GFP_KERNEL);
1006 if (!record->buf)
1010 size = psz_zone_read_buffer(zone, record->buf + hlen, size,
1013 kfree(record->buf);
1022 struct pstore_record *record)
1028 if (!zone || !record)
1038 ret = pstore_ftrace_combine_log(&record->buf, &record->size,
1044 cxt = record->psi->data;
1048 record->id = 0;
1049 return record->size ? record->size : -ENOMSG;
1053 struct pstore_record *record)
1058 if (!zone || !record)
1066 record->buf = kmalloc(len, GFP_KERNEL);
1067 if (!record->buf)
1070 if (unlikely(psz_zone_read_oldbuf(zone, record->buf, len, 0))) {
1071 kfree(record->buf);
1078 static ssize_t psz_pstore_read(struct pstore_record *record)
1080 struct psz_context *cxt = record->psi->data;
1082 struct pstore_record *record);
1096 record->type = zone->type;
1097 switch (record->type) {
1100 record->id = cxt->kmsg_read_cnt - 1;
1114 ret = readop(zone, record);
1339 pr_warn("at least one record size must be non-zero\n");
1370 * if no @write, pstore do not support to remove record file.