Lines Matching refs:drc

286 	dmu_recv_cookie_t *drc = drba->drba_cookie;  in redact_check()  local
287 struct drr_begin *drrb = drc->drc_drrb; in redact_check()
303 if (nvlist_lookup_uint64_array(drc->drc_begin_nvl, in redact_check()
323 err = nvlist_lookup_uint64_array(drc->drc_begin_nvl, in redact_check()
843 dmu_recv_cookie_t *drc = drba->drba_cookie; in dmu_recv_begin_sync() local
844 struct drr_begin *drrb = drc->drc_drrb; in dmu_recv_begin_sync()
845 const char *tofs = drc->drc_tofs; in dmu_recv_begin_sync()
846 uint64_t featureflags = drc->drc_featureflags; in dmu_recv_begin_sync()
886 if (drc->drc_heal) { in dmu_recv_begin_sync()
888 VERIFY0(dsl_dataset_snap_lookup(ds, drc->drc_tosnap, in dmu_recv_begin_sync()
917 drc->drc_newfs = B_TRUE; in dmu_recv_begin_sync()
934 if (drc->drc_resumable) { in dmu_recv_begin_sync()
971 if (nvlist_lookup_uint64_array(drc->drc_begin_nvl, in dmu_recv_begin_sync()
994 VERIFY0(nvlist_lookup_uint64_array(drc->drc_begin_nvl, in dmu_recv_begin_sync()
1040 !drc->drc_heal) { in dmu_recv_begin_sync()
1056 dmu_recv_cookie_t *drc = drba->drba_cookie; in dmu_recv_resume_begin_check() local
1058 struct drr_begin *drrb = drc->drc_drrb; in dmu_recv_resume_begin_check()
1062 const char *tofs = drc->drc_tofs; in dmu_recv_resume_begin_check()
1066 ASSERT(drc->drc_featureflags & DMU_BACKUP_FEATURE_RESUMING); in dmu_recv_resume_begin_check()
1077 error = recv_begin_check_feature_flags_impl(drc->drc_featureflags, in dmu_recv_resume_begin_check()
1088 if (drc->drc_featureflags & DMU_BACKUP_FEATURE_RAW) { in dmu_recv_resume_begin_check()
1109 if (recvexist && drrb->drr_fromguid == 0 && !drc->drc_force) { in dmu_recv_resume_begin_check()
1164 drc->drc_fromsnapobj = ds->ds_prev->ds_object; in dmu_recv_resume_begin_check()
1171 if (drc->drc_featureflags & DMU_BACKUP_FEATURE_REDACTED) { in dmu_recv_resume_begin_check()
1178 if (nvlist_lookup_uint64_array(drc->drc_begin_nvl, in dmu_recv_resume_begin_check()
1201 error = recv_check_large_blocks(ds, drc->drc_featureflags); in dmu_recv_resume_begin_check()
1261 const char *origin, dmu_recv_cookie_t *drc, zfs_file_t *fp, in dmu_recv_begin() argument
1270 memset(drc, 0, sizeof (dmu_recv_cookie_t)); in dmu_recv_begin()
1271 drc->drc_drr_begin = drr_begin; in dmu_recv_begin()
1272 drc->drc_drrb = &drr_begin->drr_u.drr_begin; in dmu_recv_begin()
1273 drc->drc_tosnap = tosnap; in dmu_recv_begin()
1274 drc->drc_tofs = tofs; in dmu_recv_begin()
1275 drc->drc_force = force; in dmu_recv_begin()
1276 drc->drc_heal = heal; in dmu_recv_begin()
1277 drc->drc_resumable = resumable; in dmu_recv_begin()
1278 drc->drc_cred = cr; in dmu_recv_begin()
1279 drc->drc_clone = (origin != NULL); in dmu_recv_begin()
1281 if (drc->drc_drrb->drr_magic == BSWAP_64(DMU_BACKUP_MAGIC)) { in dmu_recv_begin()
1282 drc->drc_byteswap = B_TRUE; in dmu_recv_begin()
1284 sizeof (dmu_replay_record_t), &drc->drc_cksum); in dmu_recv_begin()
1286 } else if (drc->drc_drrb->drr_magic == DMU_BACKUP_MAGIC) { in dmu_recv_begin()
1288 sizeof (dmu_replay_record_t), &drc->drc_cksum); in dmu_recv_begin()
1291 drc->drc_cred = NULL; in dmu_recv_begin()
1295 drc->drc_fp = fp; in dmu_recv_begin()
1296 drc->drc_voff = *voffp; in dmu_recv_begin()
1297 drc->drc_featureflags = in dmu_recv_begin()
1298 DMU_GET_FEATUREFLAGS(drc->drc_drrb->drr_versioninfo); in dmu_recv_begin()
1300 uint32_t payloadlen = drc->drc_drr_begin->drr_payloadlen; in dmu_recv_begin()
1310 drc->drc_cred = NULL; in dmu_recv_begin()
1324 err = receive_read_payload_and_next_header(drc, payloadlen, in dmu_recv_begin()
1329 drc->drc_cred = NULL; in dmu_recv_begin()
1332 err = nvlist_unpack(payload, payloadlen, &drc->drc_begin_nvl, in dmu_recv_begin()
1336 kmem_free(drc->drc_next_rrd, in dmu_recv_begin()
1337 sizeof (*drc->drc_next_rrd)); in dmu_recv_begin()
1339 drc->drc_cred = NULL; in dmu_recv_begin()
1344 if (drc->drc_drrb->drr_flags & DRR_FLAG_SPILL_BLOCK) in dmu_recv_begin()
1345 drc->drc_spill = B_TRUE; in dmu_recv_begin()
1348 drba.drba_cookie = drc; in dmu_recv_begin()
1349 drba.drba_cred = drc->drc_cred; in dmu_recv_begin()
1351 if (drc->drc_featureflags & DMU_BACKUP_FEATURE_RESUMING) { in dmu_recv_begin()
1366 if ((DMU_GET_FEATUREFLAGS(drc->drc_drrb->drr_versioninfo) & in dmu_recv_begin()
1368 origin == NULL && drc->drc_drrb->drr_fromguid == 0) { in dmu_recv_begin()
1382 kmem_free(drc->drc_next_rrd, sizeof (*drc->drc_next_rrd)); in dmu_recv_begin()
1383 nvlist_free(drc->drc_begin_nvl); in dmu_recv_begin()
1385 drc->drc_cred = NULL; in dmu_recv_begin()
1570 receive_read(dmu_recv_cookie_t *drc, int len, void *buf) in receive_read() argument
1579 (drc->drc_featureflags & DMU_BACKUP_FEATURE_RAW) != 0); in receive_read()
1583 zfs_file_t *fp = drc->drc_fp; in receive_read()
1594 drc->drc_voff += len - done - resid; in receive_read()
1600 drc->drc_bytes_read += len; in receive_read()
2727 dmu_recv_cleanup_ds(dmu_recv_cookie_t *drc) in dmu_recv_cleanup_ds() argument
2729 dsl_dataset_t *ds = drc->drc_ds; in dmu_recv_cleanup_ds()
2732 dsflags = (drc->drc_raw) ? DS_HOLD_FLAG_NONE : DS_HOLD_FLAG_DECRYPT; in dmu_recv_cleanup_ds()
2744 if (drc->drc_resumable && drc->drc_should_save && in dmu_recv_cleanup_ds()
2753 if (!drc->drc_heal) in dmu_recv_cleanup_ds()
2759 receive_cksum(dmu_recv_cookie_t *drc, int len, void *buf) in receive_cksum() argument
2761 if (drc->drc_byteswap) { in receive_cksum()
2763 &drc->drc_cksum); in receive_cksum()
2765 (void) fletcher_4_incremental_native(buf, len, &drc->drc_cksum); in receive_cksum()
2777 receive_read_payload_and_next_header(dmu_recv_cookie_t *drc, int len, void *buf) in receive_read_payload_and_next_header() argument
2783 err = receive_read(drc, len, buf); in receive_read_payload_and_next_header()
2786 receive_cksum(drc, len, buf); in receive_read_payload_and_next_header()
2789 if (drc->drc_rrd != NULL) { in receive_read_payload_and_next_header()
2790 drc->drc_rrd->payload = buf; in receive_read_payload_and_next_header()
2791 drc->drc_rrd->payload_size = len; in receive_read_payload_and_next_header()
2792 drc->drc_rrd->bytes_read = drc->drc_bytes_read; in receive_read_payload_and_next_header()
2798 drc->drc_prev_cksum = drc->drc_cksum; in receive_read_payload_and_next_header()
2800 drc->drc_next_rrd = kmem_zalloc(sizeof (*drc->drc_next_rrd), KM_SLEEP); in receive_read_payload_and_next_header()
2801 err = receive_read(drc, sizeof (drc->drc_next_rrd->header), in receive_read_payload_and_next_header()
2802 &drc->drc_next_rrd->header); in receive_read_payload_and_next_header()
2803 drc->drc_next_rrd->bytes_read = drc->drc_bytes_read; in receive_read_payload_and_next_header()
2806 kmem_free(drc->drc_next_rrd, sizeof (*drc->drc_next_rrd)); in receive_read_payload_and_next_header()
2807 drc->drc_next_rrd = NULL; in receive_read_payload_and_next_header()
2810 if (drc->drc_next_rrd->header.drr_type == DRR_BEGIN) { in receive_read_payload_and_next_header()
2811 kmem_free(drc->drc_next_rrd, sizeof (*drc->drc_next_rrd)); in receive_read_payload_and_next_header()
2812 drc->drc_next_rrd = NULL; in receive_read_payload_and_next_header()
2822 receive_cksum(drc, in receive_read_payload_and_next_header()
2824 &drc->drc_next_rrd->header); in receive_read_payload_and_next_header()
2827 drc->drc_next_rrd->header.drr_u.drr_checksum.drr_checksum; in receive_read_payload_and_next_header()
2829 &drc->drc_next_rrd->header.drr_u.drr_checksum.drr_checksum; in receive_read_payload_and_next_header()
2831 if (drc->drc_byteswap) in receive_read_payload_and_next_header()
2832 byteswap_record(&drc->drc_next_rrd->header); in receive_read_payload_and_next_header()
2835 !ZIO_CHECKSUM_EQUAL(drc->drc_cksum, *cksump)) { in receive_read_payload_and_next_header()
2836 kmem_free(drc->drc_next_rrd, sizeof (*drc->drc_next_rrd)); in receive_read_payload_and_next_header()
2837 drc->drc_next_rrd = NULL; in receive_read_payload_and_next_header()
2841 receive_cksum(drc, sizeof (cksum_orig), &cksum_orig); in receive_read_payload_and_next_header()
2864 receive_read_prefetch(dmu_recv_cookie_t *drc, uint64_t object, uint64_t offset, in receive_read_prefetch() argument
2867 if (!objlist_exists(drc->drc_ignore_objlist, object)) { in receive_read_prefetch()
2868 dmu_prefetch(drc->drc_os, object, 1, offset, length, in receive_read_prefetch()
2877 receive_read_record(dmu_recv_cookie_t *drc) in receive_read_record() argument
2881 switch (drc->drc_rrd->header.drr_type) { in receive_read_record()
2885 &drc->drc_rrd->header.drr_u.drr_object; in receive_read_record()
2893 err = receive_read_payload_and_next_header(drc, size, buf); in receive_read_record()
2898 err = dmu_object_info(drc->drc_os, drro->drr_object, &doi); in receive_read_record()
2905 objlist_insert(drc->drc_ignore_objlist, in receive_read_record()
2913 err = receive_read_payload_and_next_header(drc, 0, NULL); in receive_read_record()
2918 struct drr_write *drrw = &drc->drc_rrd->header.drr_u.drr_write; in receive_read_record()
2921 err = receive_read_payload_and_next_header(drc, size, in receive_read_record()
2927 drc->drc_rrd->abd = abd; in receive_read_record()
2928 receive_read_prefetch(drc, drrw->drr_object, drrw->drr_offset, in receive_read_record()
2935 &drc->drc_rrd->header.drr_u.drr_write_embedded; in receive_read_record()
2939 err = receive_read_payload_and_next_header(drc, size, buf); in receive_read_record()
2945 receive_read_prefetch(drc, drrwe->drr_object, drrwe->drr_offset, in receive_read_record()
2956 err = receive_read_payload_and_next_header(drc, 0, NULL); in receive_read_record()
2961 struct drr_end *drre = &drc->drc_rrd->header.drr_u.drr_end; in receive_read_record()
2962 if (!ZIO_CHECKSUM_EQUAL(drc->drc_prev_cksum, in receive_read_record()
2969 struct drr_spill *drrs = &drc->drc_rrd->header.drr_u.drr_spill; in receive_read_record()
2972 err = receive_read_payload_and_next_header(drc, size, in receive_read_record()
2977 drc->drc_rrd->abd = abd; in receive_read_record()
2982 err = receive_read_payload_and_next_header(drc, 0, NULL); in receive_read_record()
3288 resume_check(dmu_recv_cookie_t *drc, nvlist_t *begin_nvl) in resume_check() argument
3291 objset_t *mos = dmu_objset_pool(drc->drc_os)->dp_meta_objset; in resume_check()
3292 uint64_t dsobj = dmu_objset_id(drc->drc_os); in resume_check()
3326 dmu_recv_stream(dmu_recv_cookie_t *drc, offset_t *voffp) in dmu_recv_stream() argument
3331 if (dsl_dataset_has_resume_receive_state(drc->drc_ds)) { in dmu_recv_stream()
3333 (void) zap_lookup(drc->drc_ds->ds_dir->dd_pool->dp_meta_objset, in dmu_recv_stream()
3334 drc->drc_ds->ds_object, DS_FIELD_RESUME_BYTES, in dmu_recv_stream()
3336 drc->drc_bytes_read += bytes; in dmu_recv_stream()
3339 drc->drc_ignore_objlist = objlist_create(); in dmu_recv_stream()
3342 ASSERT3U(DMU_GET_STREAM_HDRTYPE(drc->drc_drrb->drr_versioninfo), ==, in dmu_recv_stream()
3344 ASSERT3U(drc->drc_drrb->drr_type, <, DMU_OST_NUMTYPES); in dmu_recv_stream()
3346 ASSERT(dsl_dataset_phys(drc->drc_ds)->ds_flags & DS_FLAG_INCONSISTENT); in dmu_recv_stream()
3347 ASSERT0(drc->drc_os->os_encrypted && in dmu_recv_stream()
3348 (drc->drc_featureflags & DMU_BACKUP_FEATURE_EMBED_DATA)); in dmu_recv_stream()
3351 if (drc->drc_featureflags & DMU_BACKUP_FEATURE_RAW) { in dmu_recv_stream()
3354 ASSERT(drc->drc_os->os_encrypted); in dmu_recv_stream()
3355 ASSERT(drc->drc_raw); in dmu_recv_stream()
3357 err = nvlist_lookup_nvlist(drc->drc_begin_nvl, "crypt_keydata", in dmu_recv_stream()
3362 if (!drc->drc_heal) { in dmu_recv_stream()
3369 err = dsl_crypto_recv_raw(spa_name(drc->drc_os->os_spa), in dmu_recv_stream()
3370 drc->drc_ds->ds_object, drc->drc_fromsnapobj, in dmu_recv_stream()
3371 drc->drc_drrb->drr_type, keynvl, drc->drc_newfs); in dmu_recv_stream()
3377 drc->drc_ivset_guid = 0; in dmu_recv_stream()
3379 &drc->drc_ivset_guid); in dmu_recv_stream()
3381 if (!drc->drc_newfs) in dmu_recv_stream()
3382 drc->drc_keynvl = fnvlist_dup(keynvl); in dmu_recv_stream()
3385 if (drc->drc_featureflags & DMU_BACKUP_FEATURE_RESUMING) { in dmu_recv_stream()
3386 err = resume_check(drc, drc->drc_begin_nvl); in dmu_recv_stream()
3396 if (drc->drc_drr_begin->drr_payloadlen == 0) { in dmu_recv_stream()
3397 err = receive_read_payload_and_next_header(drc, 0, NULL); in dmu_recv_stream()
3407 drc->drc_should_save = B_TRUE; in dmu_recv_stream()
3414 rwa->os = drc->drc_os; in dmu_recv_stream()
3415 rwa->byteswap = drc->drc_byteswap; in dmu_recv_stream()
3416 rwa->heal = drc->drc_heal; in dmu_recv_stream()
3417 rwa->tofs = drc->drc_tofs; in dmu_recv_stream()
3418 rwa->resumable = drc->drc_resumable; in dmu_recv_stream()
3419 rwa->raw = drc->drc_raw; in dmu_recv_stream()
3420 rwa->spill = drc->drc_spill; in dmu_recv_stream()
3421 rwa->full = (drc->drc_drr_begin->drr_u.drr_begin.drr_fromguid == 0); in dmu_recv_stream()
3422 rwa->os->os_raw_receive = drc->drc_raw; in dmu_recv_stream()
3423 if (drc->drc_heal) { in dmu_recv_stream()
3424 rwa->heal_pio = zio_root(drc->drc_os->os_spa, NULL, NULL, in dmu_recv_stream()
3453 ASSERT3P(drc->drc_rrd, ==, NULL); in dmu_recv_stream()
3454 drc->drc_rrd = drc->drc_next_rrd; in dmu_recv_stream()
3455 drc->drc_next_rrd = NULL; in dmu_recv_stream()
3457 err = receive_read_record(drc); in dmu_recv_stream()
3459 if (drc->drc_rrd->header.drr_type == DRR_END || err != 0) { in dmu_recv_stream()
3460 kmem_free(drc->drc_rrd, sizeof (*drc->drc_rrd)); in dmu_recv_stream()
3461 drc->drc_rrd = NULL; in dmu_recv_stream()
3465 bqueue_enqueue(&rwa->q, drc->drc_rrd, in dmu_recv_stream()
3467 drc->drc_rrd->payload_size); in dmu_recv_stream()
3468 drc->drc_rrd = NULL; in dmu_recv_stream()
3471 ASSERT3P(drc->drc_rrd, ==, NULL); in dmu_recv_stream()
3472 drc->drc_rrd = kmem_zalloc(sizeof (*drc->drc_rrd), KM_SLEEP); in dmu_recv_stream()
3473 drc->drc_rrd->eos_marker = B_TRUE; in dmu_recv_stream()
3474 bqueue_enqueue_flush(&rwa->q, drc->drc_rrd, 1); in dmu_recv_stream()
3491 if (drc->drc_clone && drc->drc_drrb->drr_fromguid == 0) { in dmu_recv_stream()
3525 if (drc->drc_next_rrd != NULL) in dmu_recv_stream()
3526 kmem_free(drc->drc_next_rrd, sizeof (*drc->drc_next_rrd)); in dmu_recv_stream()
3532 drc->drc_os = NULL; in dmu_recv_stream()
3535 nvlist_free(drc->drc_begin_nvl); in dmu_recv_stream()
3543 dmu_recv_cleanup_ds(drc); in dmu_recv_stream()
3544 nvlist_free(drc->drc_keynvl); in dmu_recv_stream()
3545 crfree(drc->drc_cred); in dmu_recv_stream()
3546 drc->drc_cred = NULL; in dmu_recv_stream()
3549 objlist_destroy(drc->drc_ignore_objlist); in dmu_recv_stream()
3550 drc->drc_ignore_objlist = NULL; in dmu_recv_stream()
3551 *voffp = drc->drc_voff; in dmu_recv_stream()
3558 dmu_recv_cookie_t *drc = arg; in dmu_recv_end_check() local
3562 ASSERT3P(drc->drc_ds->ds_owner, ==, dmu_recv_tag); in dmu_recv_end_check()
3564 if (drc->drc_heal) { in dmu_recv_end_check()
3566 } else if (!drc->drc_newfs) { in dmu_recv_end_check()
3569 error = dsl_dataset_hold(dp, drc->drc_tofs, FTAG, &origin_head); in dmu_recv_end_check()
3572 if (drc->drc_force) { in dmu_recv_end_check()
3583 dsl_dataset_phys(drc->drc_ds)->ds_prev_snap_obj) { in dmu_recv_end_check()
3605 if (drc->drc_keynvl != NULL) { in dmu_recv_end_check()
3606 error = dsl_crypto_recv_raw_key_check(drc->drc_ds, in dmu_recv_end_check()
3607 drc->drc_keynvl, tx); in dmu_recv_end_check()
3614 error = dsl_dataset_clone_swap_check_impl(drc->drc_ds, in dmu_recv_end_check()
3615 origin_head, drc->drc_force, drc->drc_owner, tx); in dmu_recv_end_check()
3621 drc->drc_tosnap, tx, B_TRUE, 1, drc->drc_cred); in dmu_recv_end_check()
3626 error = dsl_destroy_head_check_impl(drc->drc_ds, 1); in dmu_recv_end_check()
3628 error = dsl_dataset_snapshot_check_impl(drc->drc_ds, in dmu_recv_end_check()
3629 drc->drc_tosnap, tx, B_TRUE, 1, drc->drc_cred); in dmu_recv_end_check()
3637 dmu_recv_cookie_t *drc = arg; in dmu_recv_end_sync() local
3639 boolean_t encrypted = drc->drc_ds->ds_dir->dd_crypto_obj != 0; in dmu_recv_end_sync()
3642 spa_history_log_internal_ds(drc->drc_ds, "finish receiving", in dmu_recv_end_sync()
3643 tx, "snap=%s", drc->drc_tosnap); in dmu_recv_end_sync()
3644 drc->drc_ds->ds_objset->os_raw_receive = B_FALSE; in dmu_recv_end_sync()
3646 if (drc->drc_heal) { in dmu_recv_end_sync()
3647 if (drc->drc_keynvl != NULL) { in dmu_recv_end_sync()
3648 nvlist_free(drc->drc_keynvl); in dmu_recv_end_sync()
3649 drc->drc_keynvl = NULL; in dmu_recv_end_sync()
3651 } else if (!drc->drc_newfs) { in dmu_recv_end_sync()
3654 VERIFY0(dsl_dataset_hold(dp, drc->drc_tofs, FTAG, in dmu_recv_end_sync()
3657 if (drc->drc_force) { in dmu_recv_end_sync()
3666 dsl_dataset_phys(drc->drc_ds)->ds_prev_snap_obj) { in dmu_recv_end_sync()
3677 if (drc->drc_keynvl != NULL) { in dmu_recv_end_sync()
3678 dsl_crypto_recv_raw_key_sync(drc->drc_ds, in dmu_recv_end_sync()
3679 drc->drc_keynvl, tx); in dmu_recv_end_sync()
3680 nvlist_free(drc->drc_keynvl); in dmu_recv_end_sync()
3681 drc->drc_keynvl = NULL; in dmu_recv_end_sync()
3684 VERIFY3P(drc->drc_ds->ds_prev, ==, in dmu_recv_end_sync()
3687 dsl_dataset_clone_swap_sync_impl(drc->drc_ds, in dmu_recv_end_sync()
3693 drc->drc_os = NULL; in dmu_recv_end_sync()
3696 drc->drc_tosnap, tx); in dmu_recv_end_sync()
3701 drc->drc_drrb->drr_creation_time; in dmu_recv_end_sync()
3703 drc->drc_drrb->drr_toguid; in dmu_recv_end_sync()
3715 dsl_destroy_head_sync_impl(drc->drc_ds, tx); in dmu_recv_end_sync()
3717 if (drc->drc_owner != NULL) in dmu_recv_end_sync()
3718 VERIFY3P(origin_head->ds_owner, ==, drc->drc_owner); in dmu_recv_end_sync()
3720 dsl_dataset_t *ds = drc->drc_ds; in dmu_recv_end_sync()
3722 dsl_dataset_snapshot_sync_impl(ds, drc->drc_tosnap, tx); in dmu_recv_end_sync()
3727 drc->drc_drrb->drr_creation_time; in dmu_recv_end_sync()
3729 drc->drc_drrb->drr_toguid; in dmu_recv_end_sync()
3752 dsl_dataset_phys(drc->drc_ds)->ds_prev_snap_obj; in dmu_recv_end_sync()
3765 if (!drc->drc_heal && drc->drc_raw && drc->drc_ivset_guid != 0) { in dmu_recv_end_sync()
3770 &drc->drc_ivset_guid, tx)); in dmu_recv_end_sync()
3781 if (!drc->drc_raw && encrypted) { in dmu_recv_end_sync()
3783 drc->drc_ds->ds_object, drc->drc_ds); in dmu_recv_end_sync()
3785 dsl_dataset_disown(drc->drc_ds, 0, dmu_recv_tag); in dmu_recv_end_sync()
3786 drc->drc_ds = NULL; in dmu_recv_end_sync()
3792 dmu_recv_existing_end(dmu_recv_cookie_t *drc) in dmu_recv_existing_end() argument
3800 dsl_dataset_name(drc->drc_ds, name); in dmu_recv_existing_end()
3804 return (dsl_sync_task(drc->drc_tofs, in dmu_recv_existing_end()
3805 dmu_recv_end_check, dmu_recv_end_sync, drc, in dmu_recv_existing_end()
3810 dmu_recv_new_end(dmu_recv_cookie_t *drc) in dmu_recv_new_end() argument
3812 return (dsl_sync_task(drc->drc_tofs, in dmu_recv_new_end()
3813 dmu_recv_end_check, dmu_recv_end_sync, drc, in dmu_recv_new_end()
3818 dmu_recv_end(dmu_recv_cookie_t *drc, void *owner) in dmu_recv_end() argument
3822 drc->drc_owner = owner; in dmu_recv_end()
3824 if (drc->drc_newfs) in dmu_recv_end()
3825 error = dmu_recv_new_end(drc); in dmu_recv_end()
3827 error = dmu_recv_existing_end(drc); in dmu_recv_end()
3830 dmu_recv_cleanup_ds(drc); in dmu_recv_end()
3831 nvlist_free(drc->drc_keynvl); in dmu_recv_end()
3832 } else if (!drc->drc_heal) { in dmu_recv_end()
3833 if (drc->drc_newfs) { in dmu_recv_end()
3834 zvol_create_minor(drc->drc_tofs); in dmu_recv_end()
3837 drc->drc_tofs, drc->drc_tosnap); in dmu_recv_end()
3842 crfree(drc->drc_cred); in dmu_recv_end()
3843 drc->drc_cred = NULL; in dmu_recv_end()