Lines Matching refs:ds

199 	dsl_dataset_t *ds;
223 dsl_dir_phys(dd)->dd_head_dataset_obj, FTAG, &ds);
226 dsl_dataset_phys(ds)->ds_prev_snap_obj, dp,
228 dsl_dataset_rele(ds, FTAG);
346 dsl_dataset_t *ds;
395 VERIFY0(dsl_dataset_hold_obj(dp, obj, FTAG, &ds));
396 rrw_enter(&ds->ds_bp_rwlock, RW_READER, FTAG);
397 os = dmu_objset_create_impl(dp->dp_spa, ds,
398 dsl_dataset_get_blkptr(ds), DMU_OST_ZFS, tx);
399 rrw_exit(&ds->ds_bp_rwlock, FTAG);
403 dsl_dataset_rele(ds, FTAG);
461 dsl_dataset_t *ds;
474 while ((ds = txg_list_remove(&dp->dp_dirty_datasets, txg)) != NULL) {
480 ASSERT(!list_link_active(&ds->ds_synced_link));
481 list_insert_tail(&synced_datasets, ds);
482 dsl_dataset_sync(ds, zio, tx);
499 for (ds = list_head(&synced_datasets); ds != NULL;
500 ds = list_next(&synced_datasets, ds)) {
501 dmu_objset_do_userquota_updates(ds->ds_objset, tx);
512 while ((ds = txg_list_remove(&dp->dp_dirty_datasets, txg)) != NULL) {
513 ASSERT(list_link_active(&ds->ds_synced_link));
514 dmu_buf_rele(ds->ds_dbuf, ds);
515 dsl_dataset_sync(ds, zio, tx);
526 while ((ds = list_remove_head(&synced_datasets)) != NULL) {
527 dsl_dataset_sync_done(ds, tx);
585 dsl_dataset_t *ds = dmu_objset_ds(zilog->zl_os);
595 dmu_buf_rele(ds->ds_dbuf, zilog);
678 dsl_dataset_t *ds, *prev = NULL;
681 err = dsl_dataset_hold_obj(dp, hds->ds_object, FTAG, &ds);
685 while (dsl_dataset_phys(ds)->ds_prev_snap_obj != 0) {
687 dsl_dataset_phys(ds)->ds_prev_snap_obj, FTAG, &prev);
689 dsl_dataset_rele(ds, FTAG);
693 if (dsl_dataset_phys(prev)->ds_next_snap_obj != ds->ds_object)
695 dsl_dataset_rele(ds, FTAG);
696 ds = prev;
707 rrw_enter(&ds->ds_bp_rwlock, RW_READER, FTAG);
709 rrw_exit(&ds->ds_bp_rwlock, FTAG);
712 if (ds->ds_object == prev->ds_object) {
713 dsl_dataset_rele(ds, FTAG);
717 dmu_buf_will_dirty(ds->ds_dbuf, tx);
718 dsl_dataset_phys(ds)->ds_prev_snap_obj = prev->ds_object;
719 dsl_dataset_phys(ds)->ds_prev_snap_txg =
722 dmu_buf_will_dirty(ds->ds_dir->dd_dbuf, tx);
723 dsl_dir_phys(ds->ds_dir)->dd_origin_obj = prev->ds_object;
728 if (dsl_dataset_phys(ds)->ds_next_snap_obj == 0) {
729 ASSERT(ds->ds_prev == NULL);
731 dsl_dataset_phys(ds)->ds_prev_snap_obj,
732 ds, &ds->ds_prev));
736 ASSERT3U(dsl_dir_phys(ds->ds_dir)->dd_origin_obj, ==, prev->ds_object);
737 ASSERT3U(dsl_dataset_phys(ds)->ds_prev_snap_obj, ==, prev->ds_object);
746 dsl_dataset_phys(prev)->ds_next_clones_obj, ds->ds_object, tx));
748 dsl_dataset_rele(ds, FTAG);
766 upgrade_dir_clones_cb(dsl_pool_t *dp, dsl_dataset_t *ds, void *arg)
771 if (dsl_dir_phys(ds->ds_dir)->dd_origin_obj != 0) {
775 dsl_dir_phys(ds->ds_dir)->dd_origin_obj, FTAG, &origin));
786 ds->ds_object, tx));
822 dsl_dataset_t *ds;
828 /* create the origin dir, ds, & snap-ds */
831 VERIFY0(dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds));
832 dsl_dataset_snapshot_sync_impl(ds, ORIGIN_DIR_NAME, tx);
833 VERIFY0(dsl_dataset_hold_obj(dp, dsl_dataset_phys(ds)->ds_prev_snap_obj,
835 dsl_dataset_rele(ds, FTAG);