Lines Matching refs:ds

348     dsl_dataset_t *ds, dsl_scan_t *scn, dmu_objset_type_t ostype,
350 static void dsl_scan_visitdnode(dsl_scan_t *, dsl_dataset_t *ds,
435 dsl_scan_ds_maxtxg(dsl_dataset_t *ds)
437 uint64_t smt = ds->ds_dir->dd_pool->dp_scan->scn_phys.scn_max_txg;
438 if (dsl_dataset_is_snapshot(ds))
439 return (MIN(smt, ds->ds_phys->ds_creation_txg));
653 dsl_scan_recurse(dsl_scan_t *scn, dsl_dataset_t *ds, dmu_objset_type_t ostype,
685 *bufp, ds, scn, ostype, tx);
718 dsl_scan_visitdnode(scn, ds, ostype,
736 dsl_scan_visitdnode(scn, ds, osp->os_type,
746 dsl_scan_visitdnode(scn, ds, osp->os_type,
749 dsl_scan_visitdnode(scn, ds, osp->os_type,
759 dsl_scan_visitdnode(dsl_scan_t *scn, dsl_dataset_t *ds,
768 SET_BOOKMARK(&czb, ds ? ds->ds_object : 0, object,
771 &czb, dnp, buf, ds, scn, ostype, tx);
776 SET_BOOKMARK(&czb, ds ? ds->ds_object : 0, object,
779 &czb, dnp, buf, ds, scn, ostype, tx);
790 dsl_dataset_t *ds, dsl_scan_t *scn, dmu_objset_type_t ostype,
811 "visiting ds=%p/%llu zb=%llx/%llx/%llx/%llx buf=%p bp=%p",
812 ds, ds ? ds->ds_object : 0,
835 if (dsl_scan_recurse(scn, ds, ostype, dnp, &bp_toread, zb, tx,
865 dsl_scan_visit_rootbp(dsl_scan_t *scn, dsl_dataset_t *ds, blkptr_t *bp,
870 SET_BOOKMARK(&zb, ds ? ds->ds_object : DMU_META_OBJSET,
873 ds, scn, DMU_OST_NONE, tx);
875 dprintf_ds(ds, "finished scan%s", "");
879 dsl_scan_ds_destroyed(dsl_dataset_t *ds, dmu_tx_t *tx)
881 dsl_pool_t *dp = ds->ds_dir->dd_pool;
888 if (scn->scn_phys.scn_bookmark.zb_objset == ds->ds_object) {
889 if (dsl_dataset_is_snapshot(ds)) {
892 ds->ds_phys->ds_next_snap_obj;
893 zfs_dbgmsg("destroying ds %llu; currently traversing; "
895 (u_longlong_t)ds->ds_object,
896 (u_longlong_t)ds->ds_phys->ds_next_snap_obj);
901 zfs_dbgmsg("destroying ds %llu; currently traversing; "
903 (u_longlong_t)ds->ds_object);
906 scn->scn_phys.scn_queue_obj, ds->ds_object, &mintxg) == 0) {
907 ASSERT3U(ds->ds_phys->ds_num_children, <=, 1);
909 scn->scn_phys.scn_queue_obj, ds->ds_object, tx));
910 if (dsl_dataset_is_snapshot(ds)) {
918 ds->ds_phys->ds_next_snap_obj, mintxg, tx) == 0);
919 zfs_dbgmsg("destroying ds %llu; in queue; "
921 (u_longlong_t)ds->ds_object,
922 (u_longlong_t)ds->ds_phys->ds_next_snap_obj);
924 zfs_dbgmsg("destroying ds %llu; in queue; removing",
925 (u_longlong_t)ds->ds_object);
928 zfs_dbgmsg("destroying ds %llu; ignoring",
929 (u_longlong_t)ds->ds_object);
940 dsl_scan_ds_snapshotted(dsl_dataset_t *ds, dmu_tx_t *tx)
942 dsl_pool_t *dp = ds->ds_dir->dd_pool;
949 ASSERT(ds->ds_phys->ds_prev_snap_obj != 0);
951 if (scn->scn_phys.scn_bookmark.zb_objset == ds->ds_object) {
953 ds->ds_phys->ds_prev_snap_obj;
954 zfs_dbgmsg("snapshotting ds %llu; currently traversing; "
956 (u_longlong_t)ds->ds_object,
957 (u_longlong_t)ds->ds_phys->ds_prev_snap_obj);
959 scn->scn_phys.scn_queue_obj, ds->ds_object, &mintxg) == 0) {
961 scn->scn_phys.scn_queue_obj, ds->ds_object, tx));
964 ds->ds_phys->ds_prev_snap_obj, mintxg, tx) == 0);
965 zfs_dbgmsg("snapshotting ds %llu; in queue; "
967 (u_longlong_t)ds->ds_object,
968 (u_longlong_t)ds->ds_phys->ds_prev_snap_obj);
985 zfs_dbgmsg("clone_swap ds %llu; currently traversing; "
991 zfs_dbgmsg("clone_swap ds %llu; currently traversing; "
1014 zfs_dbgmsg("clone_swap ds %llu; in queue; "
1026 zfs_dbgmsg("clone_swap ds %llu; in queue; "
1045 dsl_dataset_t *ds;
1050 err = dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds);
1054 if (ds->ds_dir->dd_phys->dd_origin_obj == eca->originobj) {
1055 while (ds->ds_phys->ds_prev_snap_obj != eca->originobj) {
1058 ds->ds_phys->ds_prev_snap_obj, FTAG, &prev);
1060 dsl_dataset_rele(ds, FTAG);
1063 ds = prev;
1066 scn->scn_phys.scn_queue_obj, ds->ds_object,
1067 ds->ds_phys->ds_prev_snap_txg, eca->tx) == 0);
1069 dsl_dataset_rele(ds, FTAG);
1077 dsl_dataset_t *ds;
1080 VERIFY3U(0, ==, dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds));
1082 if (dmu_objset_from_ds(ds, &os))
1092 if (DSL_SCAN_IS_SCRUB_RESILVER(scn) && !dsl_dataset_is_snapshot(ds))
1096 * Iterate over the bps in this ds.
1098 dmu_buf_will_dirty(ds->ds_dbuf, tx);
1099 dsl_scan_visit_rootbp(scn, ds, &ds->ds_phys->ds_bp, tx);
1102 dsl_dataset_name(ds, dsname);
1125 scn->scn_phys.scn_queue_obj, ds->ds_object,
1133 if (ds->ds_phys->ds_next_snap_obj != 0) {
1135 scn->scn_phys.scn_queue_obj, ds->ds_phys->ds_next_snap_obj,
1136 ds->ds_phys->ds_creation_txg, tx) == 0);
1138 if (ds->ds_phys->ds_num_children > 1) {
1140 if (ds->ds_phys->ds_next_clones_obj != 0) {
1150 ds->ds_phys->ds_next_clones_obj, &count);
1152 count == ds->ds_phys->ds_num_children - 1)
1158 ds->ds_phys->ds_next_clones_obj,
1160 ds->ds_phys->ds_creation_txg, tx) == 0);
1164 eca.originobj = ds->ds_object;
1166 (void) dmu_objset_find_spa(ds->ds_dir->dd_pool->dp_spa,
1172 dsl_dataset_rele(ds, FTAG);
1180 dsl_dataset_t *ds;
1185 err = dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds);
1189 while (ds->ds_phys->ds_prev_snap_obj != 0) {
1191 err = dsl_dataset_hold_obj(dp, ds->ds_phys->ds_prev_snap_obj,
1194 dsl_dataset_rele(ds, FTAG);
1201 if (prev->ds_phys->ds_next_snap_obj != ds->ds_object) {
1202 dsl_dataset_rele(ds, FTAG);
1206 dsl_dataset_rele(ds, FTAG);
1207 ds = prev;
1211 ds->ds_object, ds->ds_phys->ds_prev_snap_txg, tx) == 0);
1212 dsl_dataset_rele(ds, FTAG);
1351 * ds we were paused on was deleted, the zb_objset may
1361 * In case we were paused right at the end of the ds, zero the
1370 dsl_dataset_t *ds;
1378 VERIFY3U(0, ==, dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds));
1386 ds->ds_phys->ds_prev_snap_txg);
1388 scn->scn_phys.scn_cur_max_txg = dsl_scan_ds_maxtxg(ds);
1389 dsl_dataset_rele(ds, FTAG);