Lines Matching refs:ds
252 dsl_dataset_t *ds; in dsl_pool_open() local
276 dsl_dir_phys(dd)->dd_head_dataset_obj, FTAG, &ds); in dsl_pool_open()
279 dsl_dataset_phys(ds)->ds_prev_snap_obj, dp, in dsl_pool_open()
281 dsl_dataset_rele(ds, FTAG); in dsl_pool_open()
451 dsl_dataset_t *ds; in dsl_pool_create() local
513 DS_HOLD_FLAG_DECRYPT, FTAG, &ds)); in dsl_pool_create()
517 rrw_enter(&ds->ds_bp_rwlock, RW_READER, FTAG); in dsl_pool_create()
518 os = dmu_objset_create_impl(dp->dp_spa, ds, in dsl_pool_create()
519 dsl_dataset_get_blkptr(ds), DMU_OST_ZFS, tx); in dsl_pool_create()
520 rrw_exit(&ds->ds_bp_rwlock, FTAG); in dsl_pool_create()
524 dsl_dataset_rele_flags(ds, DS_HOLD_FLAG_DECRYPT, FTAG); in dsl_pool_create()
603 dsl_dataset_t *ds; in dsl_pool_sync() local
633 while ((ds = txg_list_remove(&dp->dp_dirty_datasets, txg)) != NULL) { in dsl_pool_sync()
639 ASSERT(!list_link_active(&ds->ds_synced_link)); in dsl_pool_sync()
640 list_insert_tail(&synced_datasets, ds); in dsl_pool_sync()
641 dsl_dataset_sync(ds, zio, tx); in dsl_pool_sync()
670 for (ds = list_head(&synced_datasets); ds != NULL; in dsl_pool_sync()
671 ds = list_next(&synced_datasets, ds)) { in dsl_pool_sync()
672 dmu_objset_do_userquota_updates(ds->ds_objset, tx); in dsl_pool_sync()
684 while ((ds = txg_list_remove(&dp->dp_dirty_datasets, txg)) != NULL) { in dsl_pool_sync()
685 objset_t *os = ds->ds_objset; in dsl_pool_sync()
687 ASSERT(list_link_active(&ds->ds_synced_link)); in dsl_pool_sync()
688 dmu_buf_rele(ds->ds_dbuf, ds); in dsl_pool_sync()
689 dsl_dataset_sync(ds, zio, tx); in dsl_pool_sync()
698 ASSERT3P(ds->ds_key_mapping, !=, NULL); in dsl_pool_sync()
699 key_mapping_rele(dp->dp_spa, ds->ds_key_mapping, ds); in dsl_pool_sync()
712 while ((ds = list_remove_head(&synced_datasets)) != NULL) { in dsl_pool_sync()
713 objset_t *os = ds->ds_objset; in dsl_pool_sync()
717 ASSERT3P(ds->ds_key_mapping, !=, NULL); in dsl_pool_sync()
718 key_mapping_rele(dp->dp_spa, ds->ds_key_mapping, ds); in dsl_pool_sync()
721 dsl_dataset_sync_done(ds, tx); in dsl_pool_sync()
778 dsl_dataset_t *ds = dmu_objset_ds(zilog->zl_os); in dsl_pool_sync_done() local
788 dmu_buf_rele(ds->ds_dbuf, zilog); in dsl_pool_sync_done()
918 dsl_dataset_t *ds, *prev = NULL; in upgrade_clones_cb() local
921 err = dsl_dataset_hold_obj(dp, hds->ds_object, FTAG, &ds); in upgrade_clones_cb()
925 while (dsl_dataset_phys(ds)->ds_prev_snap_obj != 0) { in upgrade_clones_cb()
927 dsl_dataset_phys(ds)->ds_prev_snap_obj, FTAG, &prev); in upgrade_clones_cb()
929 dsl_dataset_rele(ds, FTAG); in upgrade_clones_cb()
933 if (dsl_dataset_phys(prev)->ds_next_snap_obj != ds->ds_object) in upgrade_clones_cb()
935 dsl_dataset_rele(ds, FTAG); in upgrade_clones_cb()
936 ds = prev; in upgrade_clones_cb()
947 rrw_enter(&ds->ds_bp_rwlock, RW_READER, FTAG); in upgrade_clones_cb()
949 rrw_exit(&ds->ds_bp_rwlock, FTAG); in upgrade_clones_cb()
952 if (ds->ds_object == prev->ds_object) { in upgrade_clones_cb()
953 dsl_dataset_rele(ds, FTAG); in upgrade_clones_cb()
957 dmu_buf_will_dirty(ds->ds_dbuf, tx); in upgrade_clones_cb()
958 dsl_dataset_phys(ds)->ds_prev_snap_obj = prev->ds_object; in upgrade_clones_cb()
959 dsl_dataset_phys(ds)->ds_prev_snap_txg = in upgrade_clones_cb()
962 dmu_buf_will_dirty(ds->ds_dir->dd_dbuf, tx); in upgrade_clones_cb()
963 dsl_dir_phys(ds->ds_dir)->dd_origin_obj = prev->ds_object; in upgrade_clones_cb()
968 if (dsl_dataset_phys(ds)->ds_next_snap_obj == 0) { in upgrade_clones_cb()
969 ASSERT(ds->ds_prev == NULL); in upgrade_clones_cb()
971 dsl_dataset_phys(ds)->ds_prev_snap_obj, in upgrade_clones_cb()
972 ds, &ds->ds_prev)); in upgrade_clones_cb()
976 ASSERT3U(dsl_dir_phys(ds->ds_dir)->dd_origin_obj, ==, prev->ds_object); in upgrade_clones_cb()
977 ASSERT3U(dsl_dataset_phys(ds)->ds_prev_snap_obj, ==, prev->ds_object); in upgrade_clones_cb()
986 dsl_dataset_phys(prev)->ds_next_clones_obj, ds->ds_object, tx)); in upgrade_clones_cb()
988 dsl_dataset_rele(ds, FTAG); in upgrade_clones_cb()
1006 upgrade_dir_clones_cb(dsl_pool_t *dp, dsl_dataset_t *ds, void *arg) in upgrade_dir_clones_cb() argument
1011 if (dsl_dir_phys(ds->ds_dir)->dd_origin_obj != 0) { in upgrade_dir_clones_cb()
1015 dsl_dir_phys(ds->ds_dir)->dd_origin_obj, FTAG, &origin)); in upgrade_dir_clones_cb()
1026 ds->ds_object, tx)); in upgrade_dir_clones_cb()
1062 dsl_dataset_t *ds; in dsl_pool_create_origin() local
1071 VERIFY0(dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds)); in dsl_pool_create_origin()
1072 dsl_dataset_snapshot_sync_impl(ds, ORIGIN_DIR_NAME, tx); in dsl_pool_create_origin()
1073 VERIFY0(dsl_dataset_hold_obj(dp, dsl_dataset_phys(ds)->ds_prev_snap_obj, in dsl_pool_create_origin()
1075 dsl_dataset_rele(ds, FTAG); in dsl_pool_create_origin()