Lines Matching refs:dscp
228 static int do_dump(dmu_send_cookie_t *dscp, struct send_range *range);
263 dump_record(dmu_send_cookie_t *dscp, void *payload, int payload_len) in dump_record() argument
265 dmu_send_outparams_t *dso = dscp->dsc_dso; in dump_record()
268 (void) fletcher_4_incremental_native(dscp->dsc_drr, in dump_record()
270 &dscp->dsc_zc); in dump_record()
271 if (dscp->dsc_drr->drr_type == DRR_BEGIN) { in dump_record()
272 dscp->dsc_sent_begin = B_TRUE; in dump_record()
274 ASSERT(ZIO_CHECKSUM_IS_ZERO(&dscp->dsc_drr->drr_u. in dump_record()
276 dscp->dsc_drr->drr_u.drr_checksum.drr_checksum = dscp->dsc_zc; in dump_record()
278 if (dscp->dsc_drr->drr_type == DRR_END) { in dump_record()
279 dscp->dsc_sent_end = B_TRUE; in dump_record()
281 (void) fletcher_4_incremental_native(&dscp->dsc_drr-> in dump_record()
283 sizeof (zio_cksum_t), &dscp->dsc_zc); in dump_record()
284 *dscp->dsc_off += sizeof (dmu_replay_record_t); in dump_record()
285 dscp->dsc_err = dso->dso_outfunc(dscp->dsc_os, dscp->dsc_drr, in dump_record()
287 if (dscp->dsc_err != 0) in dump_record()
290 *dscp->dsc_off += payload_len; in dump_record()
297 payload, payload_len, &dscp->dsc_zc); in dump_record()
312 (dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW)); in dump_record()
314 dscp->dsc_err = dso->dso_outfunc(dscp->dsc_os, payload, in dump_record()
316 if (dscp->dsc_err != 0) in dump_record()
331 dump_free(dmu_send_cookie_t *dscp, uint64_t object, uint64_t offset, in dump_free() argument
334 struct drr_free *drrf = &(dscp->dsc_drr->drr_u.drr_free); in dump_free()
349 ASSERT(object > dscp->dsc_last_data_object || in dump_free()
350 (object == dscp->dsc_last_data_object && in dump_free()
351 offset > dscp->dsc_last_data_offset)); in dump_free()
360 if (dscp->dsc_pending_op != PENDING_NONE && in dump_free()
361 dscp->dsc_pending_op != PENDING_FREE) { in dump_free()
362 if (dump_record(dscp, NULL, 0) != 0) in dump_free()
364 dscp->dsc_pending_op = PENDING_NONE; in dump_free()
367 if (dscp->dsc_pending_op == PENDING_FREE) { in dump_free()
381 if (dump_record(dscp, NULL, 0) != 0) in dump_free()
383 dscp->dsc_pending_op = PENDING_NONE; in dump_free()
387 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_free()
388 dscp->dsc_drr->drr_type = DRR_FREE; in dump_free()
395 drrf->drr_toguid = dscp->dsc_toguid; in dump_free()
397 if (dump_record(dscp, NULL, 0) != 0) in dump_free()
400 dscp->dsc_pending_op = PENDING_FREE; in dump_free()
411 dump_redact(dmu_send_cookie_t *dscp, uint64_t object, uint64_t offset, in dump_redact() argument
414 struct drr_redact *drrr = &dscp->dsc_drr->drr_u.drr_redact; in dump_redact()
422 if (dscp->dsc_pending_op != PENDING_NONE && in dump_redact()
423 dscp->dsc_pending_op != PENDING_REDACT) { in dump_redact()
424 if (dump_record(dscp, NULL, 0) != 0) in dump_redact()
426 dscp->dsc_pending_op = PENDING_NONE; in dump_redact()
429 if (dscp->dsc_pending_op == PENDING_REDACT) { in dump_redact()
440 if (dump_record(dscp, NULL, 0) != 0) in dump_redact()
442 dscp->dsc_pending_op = PENDING_NONE; in dump_redact()
446 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_redact()
447 dscp->dsc_drr->drr_type = DRR_REDACT; in dump_redact()
451 drrr->drr_toguid = dscp->dsc_toguid; in dump_redact()
452 dscp->dsc_pending_op = PENDING_REDACT; in dump_redact()
458 dmu_dump_write(dmu_send_cookie_t *dscp, dmu_object_type_t type, uint64_t object, in dmu_dump_write() argument
463 boolean_t raw = (dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW); in dmu_dump_write()
464 struct drr_write *drrw = &(dscp->dsc_drr->drr_u.drr_write); in dmu_dump_write()
470 ASSERT(object > dscp->dsc_last_data_object || in dmu_dump_write()
471 (object == dscp->dsc_last_data_object && in dmu_dump_write()
472 offset > dscp->dsc_last_data_offset)); in dmu_dump_write()
473 dscp->dsc_last_data_object = object; in dmu_dump_write()
474 dscp->dsc_last_data_offset = offset + lsize - 1; in dmu_dump_write()
482 if (dscp->dsc_pending_op != PENDING_NONE) { in dmu_dump_write()
483 if (dump_record(dscp, NULL, 0) != 0) in dmu_dump_write()
485 dscp->dsc_pending_op = PENDING_NONE; in dmu_dump_write()
488 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dmu_dump_write()
489 dscp->dsc_drr->drr_type = DRR_WRITE; in dmu_dump_write()
493 drrw->drr_toguid = dscp->dsc_toguid; in dmu_dump_write()
502 ASSERT(raw || dscp->dsc_featureflags & in dmu_dump_write()
523 ASSERT(dscp->dsc_featureflags & in dmu_dump_write()
559 if (dump_record(dscp, data, payload_size) != 0) in dmu_dump_write()
565 dump_write_embedded(dmu_send_cookie_t *dscp, uint64_t object, uint64_t offset, in dump_write_embedded() argument
570 &(dscp->dsc_drr->drr_u.drr_write_embedded); in dump_write_embedded()
572 if (dscp->dsc_pending_op != PENDING_NONE) { in dump_write_embedded()
573 if (dump_record(dscp, NULL, 0) != 0) in dump_write_embedded()
575 dscp->dsc_pending_op = PENDING_NONE; in dump_write_embedded()
580 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_write_embedded()
581 dscp->dsc_drr->drr_type = DRR_WRITE_EMBEDDED; in dump_write_embedded()
585 drrw->drr_toguid = dscp->dsc_toguid; in dump_write_embedded()
599 if (dump_record(dscp, buf, rsize) != 0) in dump_write_embedded()
605 dump_spill(dmu_send_cookie_t *dscp, const blkptr_t *bp, uint64_t object, in dump_spill() argument
608 struct drr_spill *drrs = &(dscp->dsc_drr->drr_u.drr_spill); in dump_spill()
612 if (dscp->dsc_pending_op != PENDING_NONE) { in dump_spill()
613 if (dump_record(dscp, NULL, 0) != 0) in dump_spill()
615 dscp->dsc_pending_op = PENDING_NONE; in dump_spill()
619 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_spill()
620 dscp->dsc_drr->drr_type = DRR_SPILL; in dump_spill()
623 drrs->drr_toguid = dscp->dsc_toguid; in dump_spill()
627 (BP_GET_LOGICAL_BIRTH(bp) <= dscp->dsc_fromtxg)) { in dump_spill()
632 if (dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW) { in dump_spill()
644 if (dump_record(dscp, data, payload_size) != 0) in dump_spill()
650 dump_freeobjects(dmu_send_cookie_t *dscp, uint64_t firstobj, uint64_t numobjs) in dump_freeobjects() argument
652 struct drr_freeobjects *drrfo = &(dscp->dsc_drr->drr_u.drr_freeobjects); in dump_freeobjects()
654 (DMU_META_DNODE(dscp->dsc_os)->dn_maxblkid + 1); in dump_freeobjects()
677 if (dscp->dsc_pending_op != PENDING_NONE && in dump_freeobjects()
678 dscp->dsc_pending_op != PENDING_FREEOBJECTS) { in dump_freeobjects()
679 if (dump_record(dscp, NULL, 0) != 0) in dump_freeobjects()
681 dscp->dsc_pending_op = PENDING_NONE; in dump_freeobjects()
684 if (dscp->dsc_pending_op == PENDING_FREEOBJECTS) { in dump_freeobjects()
694 if (dump_record(dscp, NULL, 0) != 0) in dump_freeobjects()
696 dscp->dsc_pending_op = PENDING_NONE; in dump_freeobjects()
701 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_freeobjects()
702 dscp->dsc_drr->drr_type = DRR_FREEOBJECTS; in dump_freeobjects()
705 drrfo->drr_toguid = dscp->dsc_toguid; in dump_freeobjects()
707 dscp->dsc_pending_op = PENDING_FREEOBJECTS; in dump_freeobjects()
713 dump_dnode(dmu_send_cookie_t *dscp, const blkptr_t *bp, uint64_t object, in dump_dnode() argument
716 struct drr_object *drro = &(dscp->dsc_drr->drr_u.drr_object); in dump_dnode()
719 if (object < dscp->dsc_resume_object) { in dump_dnode()
727 ASSERT3U(dscp->dsc_resume_object - object, <, in dump_dnode()
733 return (dump_freeobjects(dscp, object, 1)); in dump_dnode()
735 if (dscp->dsc_pending_op != PENDING_NONE) { in dump_dnode()
736 if (dump_record(dscp, NULL, 0) != 0) in dump_dnode()
738 dscp->dsc_pending_op = PENDING_NONE; in dump_dnode()
742 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_dnode()
743 dscp->dsc_drr->drr_type = DRR_OBJECT; in dump_dnode()
752 drro->drr_toguid = dscp->dsc_toguid; in dump_dnode()
754 if (!(dscp->dsc_featureflags & DMU_BACKUP_FEATURE_LARGE_BLOCKS) && in dump_dnode()
760 if ((dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW)) { in dump_dnode()
793 if (dump_record(dscp, DN_BONUS(dnp), bonuslen) != 0) in dump_dnode()
797 if (dump_free(dscp, object, (dnp->dn_maxblkid + 1) * in dump_dnode()
801 if (dscp->dsc_err != 0) in dump_dnode()
808 dump_object_range(dmu_send_cookie_t *dscp, const blkptr_t *bp, in dump_object_range() argument
812 &(dscp->dsc_drr->drr_u.drr_object_range); in dump_object_range()
816 ASSERT(dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW); in dump_object_range()
821 if (dscp->dsc_pending_op != PENDING_NONE) { in dump_object_range()
822 if (dump_record(dscp, NULL, 0) != 0) in dump_object_range()
824 dscp->dsc_pending_op = PENDING_NONE; in dump_object_range()
827 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t)); in dump_object_range()
828 dscp->dsc_drr->drr_type = DRR_OBJECT_RANGE; in dump_object_range()
831 drror->drr_toguid = dscp->dsc_toguid; in dump_object_range()
837 if (dump_record(dscp, NULL, 0) != 0) in dump_object_range()
883 do_dump(dmu_send_cookie_t *dscp, struct send_range *range) in do_dump() argument
888 err = dump_dnode(dscp, &range->sru.object.bp, range->object, in do_dump()
892 err = do_dump(dscp, range->sru.object.spill_range); in do_dump()
896 if (!(dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW)) { in do_dump()
902 err = dump_object_range(dscp, &range->sru.object_range.bp, in do_dump()
908 err = dump_redact(dscp, range->object, range->start_blkid * in do_dump()
917 dmu_objset_spa(dscp->dsc_os); in do_dump()
922 if (send_do_embed(bp, dscp->dsc_featureflags)) { in do_dump()
923 err = dump_write_embedded(dscp, range->object, in do_dump()
928 ASSERT(range->object > dscp->dsc_resume_object || in do_dump()
929 (range->object == dscp->dsc_resume_object && in do_dump()
932 dscp->dsc_resume_offset))); in do_dump()
943 !dscp->dsc_dso->dso_dryrun) { in do_dump()
959 ASSERT(dscp->dsc_dso->dso_dryrun || in do_dump()
972 err = dump_spill(dscp, bp, range->object, data); in do_dump()
984 !(dscp->dsc_featureflags & in do_dump()
989 err = dmu_dump_write(dscp, srdp->obj_type, in do_dump()
1003 err = dmu_dump_write(dscp, srdp->obj_type, in do_dump()
1016 return (dump_freeobjects(dscp, first_obj, numobj)); in do_dump()
1034 return (dump_free(dscp, range->object, offset, len)); in do_dump()