Lines Matching defs:dscp

227 static int do_dump(dmu_send_cookie_t *dscp, struct send_range *range);
262 dump_record(dmu_send_cookie_t *dscp, void *payload, int payload_len)
264 dmu_send_outparams_t *dso = dscp->dsc_dso;
267 (void) fletcher_4_incremental_native(dscp->dsc_drr,
269 &dscp->dsc_zc);
270 if (dscp->dsc_drr->drr_type == DRR_BEGIN) {
271 dscp->dsc_sent_begin = B_TRUE;
273 ASSERT(ZIO_CHECKSUM_IS_ZERO(&dscp->dsc_drr->drr_u.
275 dscp->dsc_drr->drr_u.drr_checksum.drr_checksum = dscp->dsc_zc;
277 if (dscp->dsc_drr->drr_type == DRR_END) {
278 dscp->dsc_sent_end = B_TRUE;
280 (void) fletcher_4_incremental_native(&dscp->dsc_drr->
282 sizeof (zio_cksum_t), &dscp->dsc_zc);
283 *dscp->dsc_off += sizeof (dmu_replay_record_t);
284 dscp->dsc_err = dso->dso_outfunc(dscp->dsc_os, dscp->dsc_drr,
286 if (dscp->dsc_err != 0)
289 *dscp->dsc_off += payload_len;
296 payload, payload_len, &dscp->dsc_zc);
311 (dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW));
313 dscp->dsc_err = dso->dso_outfunc(dscp->dsc_os, payload,
315 if (dscp->dsc_err != 0)
330 dump_free(dmu_send_cookie_t *dscp, uint64_t object, uint64_t offset,
333 struct drr_free *drrf = &(dscp->dsc_drr->drr_u.drr_free);
348 ASSERT(object > dscp->dsc_last_data_object ||
349 (object == dscp->dsc_last_data_object &&
350 offset > dscp->dsc_last_data_offset));
359 if (dscp->dsc_pending_op != PENDING_NONE &&
360 dscp->dsc_pending_op != PENDING_FREE) {
361 if (dump_record(dscp, NULL, 0) != 0)
363 dscp->dsc_pending_op = PENDING_NONE;
366 if (dscp->dsc_pending_op == PENDING_FREE) {
380 if (dump_record(dscp, NULL, 0) != 0)
382 dscp->dsc_pending_op = PENDING_NONE;
386 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
387 dscp->dsc_drr->drr_type = DRR_FREE;
394 drrf->drr_toguid = dscp->dsc_toguid;
396 if (dump_record(dscp, NULL, 0) != 0)
399 dscp->dsc_pending_op = PENDING_FREE;
410 dump_redact(dmu_send_cookie_t *dscp, uint64_t object, uint64_t offset,
413 struct drr_redact *drrr = &dscp->dsc_drr->drr_u.drr_redact;
421 if (dscp->dsc_pending_op != PENDING_NONE &&
422 dscp->dsc_pending_op != PENDING_REDACT) {
423 if (dump_record(dscp, NULL, 0) != 0)
425 dscp->dsc_pending_op = PENDING_NONE;
428 if (dscp->dsc_pending_op == PENDING_REDACT) {
439 if (dump_record(dscp, NULL, 0) != 0)
441 dscp->dsc_pending_op = PENDING_NONE;
445 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
446 dscp->dsc_drr->drr_type = DRR_REDACT;
450 drrr->drr_toguid = dscp->dsc_toguid;
451 dscp->dsc_pending_op = PENDING_REDACT;
457 dmu_dump_write(dmu_send_cookie_t *dscp, dmu_object_type_t type, uint64_t object,
462 boolean_t raw = (dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW);
463 struct drr_write *drrw = &(dscp->dsc_drr->drr_u.drr_write);
469 ASSERT(object > dscp->dsc_last_data_object ||
470 (object == dscp->dsc_last_data_object &&
471 offset > dscp->dsc_last_data_offset));
472 dscp->dsc_last_data_object = object;
473 dscp->dsc_last_data_offset = offset + lsize - 1;
481 if (dscp->dsc_pending_op != PENDING_NONE) {
482 if (dump_record(dscp, NULL, 0) != 0)
484 dscp->dsc_pending_op = PENDING_NONE;
487 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
488 dscp->dsc_drr->drr_type = DRR_WRITE;
492 drrw->drr_toguid = dscp->dsc_toguid;
501 ASSERT(raw || dscp->dsc_featureflags &
522 ASSERT(dscp->dsc_featureflags &
558 if (dump_record(dscp, data, payload_size) != 0)
564 dump_write_embedded(dmu_send_cookie_t *dscp, uint64_t object, uint64_t offset,
569 &(dscp->dsc_drr->drr_u.drr_write_embedded);
571 if (dscp->dsc_pending_op != PENDING_NONE) {
572 if (dump_record(dscp, NULL, 0) != 0)
574 dscp->dsc_pending_op = PENDING_NONE;
579 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
580 dscp->dsc_drr->drr_type = DRR_WRITE_EMBEDDED;
584 drrw->drr_toguid = dscp->dsc_toguid;
598 if (dump_record(dscp, buf, rsize) != 0)
604 dump_spill(dmu_send_cookie_t *dscp, const blkptr_t *bp, uint64_t object,
607 struct drr_spill *drrs = &(dscp->dsc_drr->drr_u.drr_spill);
611 if (dscp->dsc_pending_op != PENDING_NONE) {
612 if (dump_record(dscp, NULL, 0) != 0)
614 dscp->dsc_pending_op = PENDING_NONE;
618 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
619 dscp->dsc_drr->drr_type = DRR_SPILL;
622 drrs->drr_toguid = dscp->dsc_toguid;
626 (BP_GET_LOGICAL_BIRTH(bp) <= dscp->dsc_fromtxg)) {
631 if (dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW) {
643 if (dump_record(dscp, data, payload_size) != 0)
649 dump_freeobjects(dmu_send_cookie_t *dscp, uint64_t firstobj, uint64_t numobjs)
651 struct drr_freeobjects *drrfo = &(dscp->dsc_drr->drr_u.drr_freeobjects);
653 (DMU_META_DNODE(dscp->dsc_os)->dn_maxblkid + 1);
676 if (dscp->dsc_pending_op != PENDING_NONE &&
677 dscp->dsc_pending_op != PENDING_FREEOBJECTS) {
678 if (dump_record(dscp, NULL, 0) != 0)
680 dscp->dsc_pending_op = PENDING_NONE;
683 if (dscp->dsc_pending_op == PENDING_FREEOBJECTS) {
693 if (dump_record(dscp, NULL, 0) != 0)
695 dscp->dsc_pending_op = PENDING_NONE;
700 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
701 dscp->dsc_drr->drr_type = DRR_FREEOBJECTS;
704 drrfo->drr_toguid = dscp->dsc_toguid;
706 dscp->dsc_pending_op = PENDING_FREEOBJECTS;
712 dump_dnode(dmu_send_cookie_t *dscp, const blkptr_t *bp, uint64_t object,
715 struct drr_object *drro = &(dscp->dsc_drr->drr_u.drr_object);
718 if (object < dscp->dsc_resume_object) {
726 ASSERT3U(dscp->dsc_resume_object - object, <,
732 return (dump_freeobjects(dscp, object, 1));
734 if (dscp->dsc_pending_op != PENDING_NONE) {
735 if (dump_record(dscp, NULL, 0) != 0)
737 dscp->dsc_pending_op = PENDING_NONE;
741 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
742 dscp->dsc_drr->drr_type = DRR_OBJECT;
751 drro->drr_toguid = dscp->dsc_toguid;
753 if (!(dscp->dsc_featureflags & DMU_BACKUP_FEATURE_LARGE_BLOCKS) &&
759 if ((dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW)) {
792 if (dump_record(dscp, DN_BONUS(dnp), bonuslen) != 0)
796 if (dump_free(dscp, object, (dnp->dn_maxblkid + 1) *
800 if (dscp->dsc_err != 0)
807 dump_object_range(dmu_send_cookie_t *dscp, const blkptr_t *bp,
811 &(dscp->dsc_drr->drr_u.drr_object_range);
815 ASSERT(dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW);
820 if (dscp->dsc_pending_op != PENDING_NONE) {
821 if (dump_record(dscp, NULL, 0) != 0)
823 dscp->dsc_pending_op = PENDING_NONE;
826 memset(dscp->dsc_drr, 0, sizeof (dmu_replay_record_t));
827 dscp->dsc_drr->drr_type = DRR_OBJECT_RANGE;
830 drror->drr_toguid = dscp->dsc_toguid;
836 if (dump_record(dscp, NULL, 0) != 0)
882 do_dump(dmu_send_cookie_t *dscp, struct send_range *range)
887 err = dump_dnode(dscp, &range->sru.object.bp, range->object,
891 err = do_dump(dscp, range->sru.object.spill_range);
895 if (!(dscp->dsc_featureflags & DMU_BACKUP_FEATURE_RAW)) {
901 err = dump_object_range(dscp, &range->sru.object_range.bp,
907 err = dump_redact(dscp, range->object, range->start_blkid *
916 dmu_objset_spa(dscp->dsc_os);
921 if (send_do_embed(bp, dscp->dsc_featureflags)) {
922 err = dump_write_embedded(dscp, range->object,
927 ASSERT(range->object > dscp->dsc_resume_object ||
928 (range->object == dscp->dsc_resume_object &&
931 dscp->dsc_resume_offset)));
942 !dscp->dsc_dso->dso_dryrun) {
958 ASSERT(dscp->dsc_dso->dso_dryrun ||
971 err = dump_spill(dscp, bp, range->object, data);
983 !(dscp->dsc_featureflags &
988 err = dmu_dump_write(dscp, srdp->obj_type,
1002 err = dmu_dump_write(dscp, srdp->obj_type,
1015 return (dump_freeobjects(dscp, first_obj, numobj));
1033 return (dump_free(dscp, range->object, offset, len));