Lines Matching refs:dspp
1956 setup_featureflags(struct dmu_send_params *dspp, objset_t *os, in setup_featureflags() argument
1959 dsl_dataset_t *to_ds = dspp->to_ds; in setup_featureflags()
1960 dsl_pool_t *dp = dspp->dp; in setup_featureflags()
1973 if ((dspp->rawok || dspp->large_block_ok) && in setup_featureflags()
1979 if ((dspp->embedok || dspp->rawok) && !os->os_encrypted && in setup_featureflags()
1985 if (dspp->compressok || dspp->rawok) in setup_featureflags()
1988 if (dspp->rawok && os->os_encrypted) in setup_featureflags()
2009 if (dspp->resumeobj != 0 || dspp->resumeoff != 0) { in setup_featureflags()
2013 if (dspp->redactbook != NULL) { in setup_featureflags()
2024 create_begin_record(struct dmu_send_params *dspp, objset_t *os, in create_begin_record() argument
2032 dsl_dataset_t *to_ds = dspp->to_ds; in create_begin_record()
2038 drrb->drr_fromguid = dspp->ancestor_zb.zbm_guid; in create_begin_record()
2043 if (dspp->is_clone) in create_begin_record()
2045 if (dsl_dataset_phys(dspp->to_ds)->ds_flags & DS_FLAG_CI_DATASET) in create_begin_record()
2051 if (dspp->savedok) { in create_begin_record()
2052 drrb->drr_toguid = dspp->saved_guid; in create_begin_record()
2053 strlcpy(drrb->drr_toname, dspp->saved_toname, in create_begin_record()
2108 struct dmu_send_params *dspp, redaction_list_t *rl, dmu_sendstatus_t *dssp) in setup_redact_list_thread() argument
2110 if (dspp->redactbook == NULL) in setup_redact_list_thread()
2128 struct dmu_send_params *dspp, struct redact_list_thread_arg *from_arg, in setup_merge_thread() argument
2139 if (dspp->redactbook != NULL) in setup_merge_thread()
2149 struct dmu_send_params *dspp, struct send_merge_thread_arg *smt_arg, in setup_reader_thread() argument
2156 srt_arg->issue_reads = !dspp->dso->dso_dryrun; in setup_reader_thread()
2163 setup_resume_points(struct dmu_send_params *dspp, in setup_resume_points() argument
2170 dsl_dataset_t *to_ds = dspp->to_ds; in setup_resume_points()
2176 obj = dspp->resumeobj; in setup_resume_points()
2182 blkid = dspp->resumeoff / to_doi.doi_data_block_size; in setup_resume_points()
2194 uint64_t objset = dspp->ancestor_zb.zbm_redaction_obj; in setup_resume_points()
2213 fnvlist_add_uint64(nvl, BEGINNV_RESUME_OBJECT, dspp->resumeobj); in setup_resume_points()
2214 fnvlist_add_uint64(nvl, BEGINNV_RESUME_OFFSET, dspp->resumeoff); in setup_resume_points()
2220 setup_send_progress(struct dmu_send_params *dspp) in setup_send_progress() argument
2223 dssp->dss_outfd = dspp->outfd; in setup_send_progress()
2224 dssp->dss_off = dspp->off; in setup_send_progress()
2226 mutex_enter(&dspp->to_ds->ds_sendstream_lock); in setup_send_progress()
2227 list_insert_head(&dspp->to_ds->ds_sendstreams, dssp); in setup_send_progress()
2228 mutex_exit(&dspp->to_ds->ds_sendstream_lock); in setup_send_progress()
2351 dmu_send_impl(struct dmu_send_params *dspp) in dmu_send_impl() argument
2358 uint64_t fromtxg = dspp->ancestor_zb.zbm_creation_txg; in dmu_send_impl()
2368 boolean_t resuming = (dspp->resumeobj != 0 || dspp->resumeoff != 0); in dmu_send_impl()
2371 dsl_dataset_t *to_ds = dspp->to_ds; in dmu_send_impl()
2372 zfs_bookmark_phys_t *ancestor_zb = &dspp->ancestor_zb; in dmu_send_impl()
2373 dsl_pool_t *dp = dspp->dp; in dmu_send_impl()
2374 void *tag = dspp->tag; in dmu_send_impl()
2388 if (!dspp->rawok && os->os_encrypted && in dmu_send_impl()
2404 if ((err = setup_featureflags(dspp, os, &featureflags)) != 0) { in dmu_send_impl()
2412 if (dspp->redactbook != NULL) { in dmu_send_impl()
2414 dspp->redactbook->zbm_redaction_obj, FTAG, in dmu_send_impl()
2449 drr = create_begin_record(dspp, os, featureflags); in dmu_send_impl()
2450 dssp = setup_send_progress(dspp); in dmu_send_impl()
2453 dsc.dsc_dso = dspp->dso; in dmu_send_impl()
2455 dsc.dsc_off = dspp->off; in dmu_send_impl()
2460 dsc.dsc_resume_object = dspp->resumeobj; in dmu_send_impl()
2461 dsc.dsc_resume_offset = dspp->resumeoff; in dmu_send_impl()
2476 if (dspp->redactbook != NULL) { in dmu_send_impl()
2504 if (dspp->numfromredactsnaps != NUM_SNAPS_NOT_REDACTED) { in dmu_send_impl()
2507 dspp->fromredactsnaps, (uint_t)dspp->numfromredactsnaps); in dmu_send_impl()
2508 if (dspp->numfromredactsnaps > 0) { in dmu_send_impl()
2509 kmem_free(dspp->fromredactsnaps, in dmu_send_impl()
2510 dspp->numfromredactsnaps * sizeof (uint64_t)); in dmu_send_impl()
2511 dspp->fromredactsnaps = NULL; in dmu_send_impl()
2516 err = setup_resume_points(dspp, to_arg, from_arg, in dmu_send_impl()
2552 setup_to_thread(to_arg, os, dssp, fromtxg, dspp->rawok); in dmu_send_impl()
2554 setup_redact_list_thread(rlt_arg, dspp, redact_rl, dssp); in dmu_send_impl()
2555 setup_merge_thread(smt_arg, dspp, from_arg, to_arg, rlt_arg, os); in dmu_send_impl()
2556 setup_reader_thread(srt_arg, dspp, smt_arg, featureflags); in dmu_send_impl()
2582 if (dspp->redactbook != NULL) in dmu_send_impl()
2608 if (!dspp->savedok) { in dmu_send_impl()
2623 (dsc.dsc_sent_end || dspp->savedok))); in dmu_send_impl()
2655 struct dmu_send_params dspp = {0}; in dmu_send_obj() local
2656 dspp.embedok = embedok; in dmu_send_obj()
2657 dspp.large_block_ok = large_block_ok; in dmu_send_obj()
2658 dspp.compressok = compressok; in dmu_send_obj()
2659 dspp.outfd = outfd; in dmu_send_obj()
2660 dspp.off = off; in dmu_send_obj()
2661 dspp.dso = dsop; in dmu_send_obj()
2662 dspp.tag = FTAG; in dmu_send_obj()
2663 dspp.rawok = rawok; in dmu_send_obj()
2664 dspp.savedok = savedok; in dmu_send_obj()
2667 err = dsl_pool_hold(pool, FTAG, &dspp.dp); in dmu_send_obj()
2671 err = dsl_dataset_hold_obj_flags(dspp.dp, tosnap, dsflags, FTAG, in dmu_send_obj()
2672 &dspp.to_ds); in dmu_send_obj()
2674 dsl_pool_rele(dspp.dp, FTAG); in dmu_send_obj()
2679 err = dsl_dataset_hold_obj_flags(dspp.dp, fromsnap, dsflags, in dmu_send_obj()
2682 dsl_dataset_rele_flags(dspp.to_ds, dsflags, FTAG); in dmu_send_obj()
2683 dsl_pool_rele(dspp.dp, FTAG); in dmu_send_obj()
2686 dspp.ancestor_zb.zbm_guid = dsl_dataset_phys(fromds)->ds_guid; in dmu_send_obj()
2687 dspp.ancestor_zb.zbm_creation_txg = in dmu_send_obj()
2689 dspp.ancestor_zb.zbm_creation_time = in dmu_send_obj()
2693 (void) zap_lookup(dspp.dp->dp_meta_objset, in dmu_send_obj()
2695 &dspp.ancestor_zb.zbm_ivset_guid); in dmu_send_obj()
2703 &dspp.numfromredactsnaps, in dmu_send_obj()
2705 dspp.numfromredactsnaps = NUM_SNAPS_NOT_REDACTED; in dmu_send_obj()
2706 } else if (dspp.numfromredactsnaps > 0) { in dmu_send_obj()
2707 uint64_t size = dspp.numfromredactsnaps * in dmu_send_obj()
2709 dspp.fromredactsnaps = kmem_zalloc(size, KM_SLEEP); in dmu_send_obj()
2710 bcopy(fromredact, dspp.fromredactsnaps, size); in dmu_send_obj()
2714 dsl_dataset_is_before(dspp.to_ds, fromds, 0); in dmu_send_obj()
2715 dspp.is_clone = (dspp.to_ds->ds_dir != in dmu_send_obj()
2719 dsl_pool_rele(dspp.dp, FTAG); in dmu_send_obj()
2722 err = dmu_send_impl(&dspp); in dmu_send_obj()
2725 dspp.numfromredactsnaps = NUM_SNAPS_NOT_REDACTED; in dmu_send_obj()
2726 err = dmu_send_impl(&dspp); in dmu_send_obj()
2728 if (dspp.fromredactsnaps) in dmu_send_obj()
2729 kmem_free(dspp.fromredactsnaps, in dmu_send_obj()
2730 dspp.numfromredactsnaps * sizeof (uint64_t)); in dmu_send_obj()
2732 dsl_dataset_rele(dspp.to_ds, FTAG); in dmu_send_obj()
2748 struct dmu_send_params dspp = {0}; in dmu_send() local
2751 dspp.tosnap = tosnap; in dmu_send()
2752 dspp.embedok = embedok; in dmu_send()
2753 dspp.large_block_ok = large_block_ok; in dmu_send()
2754 dspp.compressok = compressok; in dmu_send()
2755 dspp.outfd = outfd; in dmu_send()
2756 dspp.off = off; in dmu_send()
2757 dspp.dso = dsop; in dmu_send()
2758 dspp.tag = FTAG; in dmu_send()
2759 dspp.resumeobj = resumeobj; in dmu_send()
2760 dspp.resumeoff = resumeoff; in dmu_send()
2761 dspp.rawok = rawok; in dmu_send()
2762 dspp.savedok = savedok; in dmu_send()
2767 err = dsl_pool_hold(tosnap, FTAG, &dspp.dp); in dmu_send()
2771 if (strchr(tosnap, '@') == NULL && spa_writeable(dspp.dp->dp_spa)) { in dmu_send()
2792 err = dsl_dataset_own_force(dspp.dp, name, dsflags, in dmu_send()
2793 FTAG, &dspp.to_ds); in dmu_send()
2795 err = dsl_dataset_own_force(dspp.dp, tosnap, in dmu_send()
2796 dsflags, FTAG, &dspp.to_ds); in dmu_send()
2801 err = zap_lookup(dspp.dp->dp_meta_objset, in dmu_send()
2802 dspp.to_ds->ds_object, in dmu_send()
2804 &dspp.saved_guid); in dmu_send()
2808 err = zap_lookup(dspp.dp->dp_meta_objset, in dmu_send()
2809 dspp.to_ds->ds_object, in dmu_send()
2811 sizeof (dspp.saved_toname), in dmu_send()
2812 dspp.saved_toname); in dmu_send()
2816 dsl_dataset_disown(dspp.to_ds, dsflags, FTAG); in dmu_send()
2820 err = dsl_dataset_own(dspp.dp, tosnap, dsflags, in dmu_send()
2821 FTAG, &dspp.to_ds); in dmu_send()
2826 err = dsl_dataset_hold_flags(dspp.dp, tosnap, dsflags, FTAG, in dmu_send()
2827 &dspp.to_ds); in dmu_send()
2832 dsl_pool_rele(dspp.dp, FTAG); in dmu_send()
2845 err = dsl_bookmark_lookup(dspp.dp, path, in dmu_send()
2847 dspp.redactbook = &book; in dmu_send()
2852 dsl_pool_rele(dspp.dp, FTAG); in dmu_send()
2854 dsl_dataset_disown(dspp.to_ds, dsflags, FTAG); in dmu_send()
2856 dsl_dataset_rele_flags(dspp.to_ds, dsflags, FTAG); in dmu_send()
2861 zfs_bookmark_phys_t *zb = &dspp.ancestor_zb; in dmu_send()
2875 dspp.is_clone = B_TRUE; in dmu_send()
2879 err = dsl_dataset_hold(dspp.dp, fromsnap, FTAG, in dmu_send()
2893 &dspp.numfromredactsnaps, in dmu_send()
2895 dspp.numfromredactsnaps = in dmu_send()
2897 } else if (dspp.numfromredactsnaps > 0) { in dmu_send()
2899 dspp.numfromredactsnaps * in dmu_send()
2901 dspp.fromredactsnaps = kmem_zalloc(size, in dmu_send()
2903 bcopy(fromredact, dspp.fromredactsnaps, in dmu_send()
2906 if (!dsl_dataset_is_before(dspp.to_ds, fromds, in dmu_send()
2922 dspp.dp->dp_meta_objset, in dmu_send()
2931 dspp.numfromredactsnaps = NUM_SNAPS_NOT_REDACTED; in dmu_send()
2932 err = dsl_bookmark_lookup(dspp.dp, fromsnap, dspp.to_ds, in dmu_send()
2936 dsl_dataset_phys(dspp.to_ds)->ds_guid) in dmu_send()
2942 err = dmu_send_impl(&dspp); in dmu_send()
2944 if (dspp.fromredactsnaps) in dmu_send()
2945 kmem_free(dspp.fromredactsnaps, in dmu_send()
2946 dspp.numfromredactsnaps * in dmu_send()
2948 dsl_pool_rele(dspp.dp, FTAG); in dmu_send()
2951 dspp.numfromredactsnaps = NUM_SNAPS_NOT_REDACTED; in dmu_send()
2952 err = dmu_send_impl(&dspp); in dmu_send()
2955 dsl_dataset_disown(dspp.to_ds, dsflags, FTAG); in dmu_send()
2957 dsl_dataset_rele_flags(dspp.to_ds, dsflags, FTAG); in dmu_send()