Lines Matching refs:rrd

1917 	struct receive_record_arg *rrd;
2576 /* note: rrd is NULL when reading the begin record's payload */
2577 if (ra->rrd != NULL) {
2578 ra->rrd->payload = buf;
2579 ra->rrd->payload_size = len;
2580 ra->rrd->bytes_read = ra->bytes_read;
2727 switch (ra->rrd->header.drr_type) {
2730 struct drr_object *drro = &ra->rrd->header.drr_u.drr_object;
2758 struct drr_write *drrw = &ra->rrd->header.drr_u.drr_write;
2781 ra->rrd->write_buf = abuf;
2789 &ra->rrd->header.drr_u.drr_write_byref;
2798 &ra->rrd->header.drr_u.drr_write_embedded;
2823 struct drr_end *drre = &ra->rrd->header.drr_u.drr_end;
2830 struct drr_spill *drrs = &ra->rrd->header.drr_u.drr_spill;
2848 struct receive_record_arg *rrd)
2853 ASSERT3U(rrd->bytes_read, >=, rwa->bytes_read);
2854 rwa->bytes_read = rrd->bytes_read;
2856 switch (rrd->header.drr_type) {
2859 struct drr_object *drro = &rrd->header.drr_u.drr_object;
2860 err = receive_object(rwa, drro, rrd->payload);
2861 kmem_free(rrd->payload, rrd->payload_size);
2862 rrd->payload = NULL;
2868 &rrd->header.drr_u.drr_freeobjects;
2873 struct drr_write *drrw = &rrd->header.drr_u.drr_write;
2874 err = receive_write(rwa, drrw, rrd->write_buf);
2877 dmu_return_arcbuf(rrd->write_buf);
2878 rrd->write_buf = NULL;
2879 rrd->payload = NULL;
2885 &rrd->header.drr_u.drr_write_byref;
2891 &rrd->header.drr_u.drr_write_embedded;
2892 err = receive_write_embedded(rwa, drrwe, rrd->payload);
2893 kmem_free(rrd->payload, rrd->payload_size);
2894 rrd->payload = NULL;
2899 struct drr_free *drrf = &rrd->header.drr_u.drr_free;
2904 struct drr_spill *drrs = &rrd->header.drr_u.drr_spill;
2905 err = receive_spill(rwa, drrs, rrd->payload);
2906 kmem_free(rrd->payload, rrd->payload_size);
2907 rrd->payload = NULL;
2923 struct receive_record_arg *rrd;
2924 for (rrd = bqueue_dequeue(&rwa->q); !rrd->eos_marker;
2925 rrd = bqueue_dequeue(&rwa->q)) {
2932 rwa->err = receive_process_record(rwa, rrd);
2933 } else if (rrd->write_buf != NULL) {
2934 dmu_return_arcbuf(rrd->write_buf);
2935 rrd->write_buf = NULL;
2936 rrd->payload = NULL;
2937 } else if (rrd->payload != NULL) {
2938 kmem_free(rrd->payload, rrd->payload_size);
2939 rrd->payload = NULL;
2941 kmem_free(rrd, sizeof (*rrd));
2943 kmem_free(rrd, sizeof (*rrd));
3104 * non-zero. In that case, the writer thread will free the rrd we just
3106 * first loop and ra.rrd was never allocated, or it's later, and ra.rrd
3109 * we free ra.rrd and exit.
3117 ASSERT3P(ra.rrd, ==, NULL);
3118 ra.rrd = ra.next_rrd;
3123 if (ra.rrd->header.drr_type == DRR_END || err != 0) {
3124 kmem_free(ra.rrd, sizeof (*ra.rrd));
3125 ra.rrd = NULL;
3129 bqueue_enqueue(&rwa.q, ra.rrd,
3130 sizeof (struct receive_record_arg) + ra.rrd->payload_size);
3131 ra.rrd = NULL;