Lines Matching defs:rrd

1402  * zio_rewrite the data pointed to by bp with the data from the rrd's abd.
1406 struct receive_record_arg *rrd, blkptr_t *bp)
1412 abd_t *abd = rrd->abd;
1520 rrd->abd = abd;
2237 struct receive_record_arg *rrd;
2238 while ((rrd = list_head(&rwa->write_batch)) != NULL) {
2239 struct drr_write *drrw = &rrd->header.drr_u.drr_write;
2240 abd_t *abd = rrd->abd;
2338 * This rrd is left on the list, so the caller will
2352 list_remove(&rwa->write_batch, rrd);
2353 kmem_free(rrd, sizeof (*rrd));
2370 struct receive_record_arg *rrd;
2371 while ((rrd = list_remove_head(&rwa->write_batch)) != NULL) {
2372 abd_free(rrd->abd);
2373 kmem_free(rrd, sizeof (*rrd));
2382 struct receive_record_arg *rrd)
2386 ASSERT3U(rrd->header.drr_type, ==, DRR_WRITE);
2387 struct drr_write *drrw = &rrd->header.drr_u.drr_write;
2404 dmu_ot_byteswap[byteswap].ob_func(abd_to_buf(rrd->abd),
2435 err = do_corrective_recv(rwa, drrw, rrd, bp);
2468 list_insert_tail(&rwa->write_batch, rrd);
2470 * Return EAGAIN to indicate that we will use this rrd again,
2769 /* note: rrd is NULL when reading the begin record's payload */
2975 dprintf_drr(struct receive_record_arg *rrd, int err)
2978 switch (rrd->header.drr_type) {
2981 struct drr_object *drro = &rrd->header.drr_u.drr_object;
2994 &rrd->header.drr_u.drr_freeobjects;
3003 struct drr_write *drrw = &rrd->header.drr_u.drr_write;
3018 &rrd->header.drr_u.drr_write_byref;
3036 &rrd->header.drr_u.drr_write_embedded;
3049 struct drr_free *drrf = &rrd->header.drr_u.drr_free;
3060 struct drr_spill *drrs = &rrd->header.drr_u.drr_spill;
3069 &rrd->header.drr_u.drr_object_range;
3088 struct receive_record_arg *rrd)
3093 ASSERT3U(rrd->bytes_read, >=, rwa->bytes_read);
3094 rwa->bytes_read = rrd->bytes_read;
3097 if (rwa->heal && rrd->header.drr_type != DRR_WRITE) {
3098 if (rrd->abd != NULL) {
3099 abd_free(rrd->abd);
3100 rrd->abd = NULL;
3101 } else if (rrd->payload != NULL) {
3102 kmem_free(rrd->payload, rrd->payload_size);
3103 rrd->payload = NULL;
3108 if (!rwa->heal && rrd->header.drr_type != DRR_WRITE) {
3111 if (rrd->abd != NULL) {
3112 abd_free(rrd->abd);
3113 rrd->abd = NULL;
3114 rrd->payload = NULL;
3115 } else if (rrd->payload != NULL) {
3116 kmem_free(rrd->payload, rrd->payload_size);
3117 rrd->payload = NULL;
3124 switch (rrd->header.drr_type) {
3127 struct drr_object *drro = &rrd->header.drr_u.drr_object;
3128 err = receive_object(rwa, drro, rrd->payload);
3129 kmem_free(rrd->payload, rrd->payload_size);
3130 rrd->payload = NULL;
3136 &rrd->header.drr_u.drr_freeobjects;
3142 err = receive_process_write_record(rwa, rrd);
3147 abd_free(rrd->abd);
3148 rrd->abd = NULL;
3154 * the rrd or arc_buf.
3157 abd_free(rrd->abd);
3158 rrd->abd = NULL;
3165 &rrd->header.drr_u.drr_write_embedded;
3166 err = receive_write_embedded(rwa, drrwe, rrd->payload);
3167 kmem_free(rrd->payload, rrd->payload_size);
3168 rrd->payload = NULL;
3173 struct drr_free *drrf = &rrd->header.drr_u.drr_free;
3179 struct drr_spill *drrs = &rrd->header.drr_u.drr_spill;
3180 err = receive_spill(rwa, drrs, rrd->abd);
3182 abd_free(rrd->abd);
3183 rrd->abd = NULL;
3184 rrd->payload = NULL;
3190 &rrd->header.drr_u.drr_object_range;
3196 struct drr_redact *drrr = &rrd->header.drr_u.drr_redact;
3205 dprintf_drr(rrd, err);
3218 struct receive_record_arg *rrd;
3221 for (rrd = bqueue_dequeue(&rwa->q); !rrd->eos_marker;
3222 rrd = bqueue_dequeue(&rwa->q)) {
3230 err = receive_process_record(rwa, rrd);
3231 } else if (rrd->abd != NULL) {
3232 abd_free(rrd->abd);
3233 rrd->abd = NULL;
3234 rrd->payload = NULL;
3235 } else if (rrd->payload != NULL) {
3236 kmem_free(rrd->payload, rrd->payload_size);
3237 rrd->payload = NULL;
3248 kmem_free(rrd, sizeof (*rrd));
3251 kmem_free(rrd, sizeof (*rrd));
3421 * non-zero. In that case, the writer thread will free the rrd we just