Lines Matching refs:ds

106 	dsl_dataset_t *ds;
108 if ((ds = os->os_dsl_dataset) != NULL && ds->ds_dir)
109 return (ds->ds_dir->dd_pool);
135 dsl_dataset_t *ds = os->os_dsl_dataset;
137 return (ds ? ds->ds_object : 0);
306 dmu_objset_open_impl(spa_t *spa, dsl_dataset_t *ds, blkptr_t *bp,
312 ASSERT(ds == NULL || MUTEX_HELD(&ds->ds_opening_lock));
315 os->os_dsl_dataset = ds;
321 SET_BOOKMARK(&zb, ds ? ds->ds_object : DMU_META_OBJSET,
368 if (ds != NULL) {
380 err = dsl_prop_register(ds,
384 err = dsl_prop_register(ds,
388 if (!ds->ds_is_snapshot) {
390 err = dsl_prop_register(ds,
395 err = dsl_prop_register(ds,
400 err = dsl_prop_register(ds,
405 err = dsl_prop_register(ds,
410 err = dsl_prop_register(ds,
415 err = dsl_prop_register(ds,
420 err = dsl_prop_register(ds,
426 err = dsl_prop_register(ds,
451 if (ds == NULL || !ds->ds_is_snapshot)
484 dmu_objset_from_ds(dsl_dataset_t *ds, objset_t **osp)
492 ASSERT(dsl_pool_config_held(ds->ds_dir->dd_pool) ||
493 dsl_dataset_long_held(ds));
495 mutex_enter(&ds->ds_opening_lock);
496 if (ds->ds_objset == NULL) {
498 rrw_enter(&ds->ds_bp_rwlock, RW_READER, FTAG);
499 err = dmu_objset_open_impl(dsl_dataset_get_spa(ds),
500 ds, dsl_dataset_get_blkptr(ds), &os);
501 rrw_exit(&ds->ds_bp_rwlock, FTAG);
504 mutex_enter(&ds->ds_lock);
505 ASSERT(ds->ds_objset == NULL);
506 ds->ds_objset = os;
507 mutex_exit(&ds->ds_lock);
510 *osp = ds->ds_objset;
511 mutex_exit(&ds->ds_opening_lock);
523 dsl_dataset_t *ds;
529 err = dsl_dataset_hold(dp, name, tag, &ds);
535 err = dmu_objset_from_ds(ds, osp);
537 dsl_dataset_rele(ds, tag);
545 dmu_objset_own_impl(dsl_dataset_t *ds, dmu_objset_type_t type,
550 err = dmu_objset_from_ds(ds, osp);
552 dsl_dataset_disown(ds, tag);
554 dsl_dataset_disown(ds, tag);
556 } else if (!readonly && dsl_dataset_is_snapshot(ds)) {
557 dsl_dataset_disown(ds, tag);
573 dsl_dataset_t *ds;
579 err = dsl_dataset_own(dp, name, tag, &ds);
584 err = dmu_objset_own_impl(ds, type, readonly, tag, osp);
594 dsl_dataset_t *ds;
597 err = dsl_dataset_own_obj(dp, obj, tag, &ds);
601 return (dmu_objset_own_impl(ds, type, readonly, tag, osp));
627 dsl_dataset_t *ds, *newds;
630 ds = os->os_dsl_dataset;
631 VERIFY3P(ds, !=, NULL);
632 VERIFY3P(ds->ds_owner, ==, tag);
633 VERIFY(dsl_dataset_long_held(ds));
635 dsl_dataset_name(ds, name);
703 dsl_dataset_t *ds = os->os_dsl_dataset;
708 if (ds)
709 dsl_prop_unregister_all(ds, os);
764 dmu_objset_create_impl(spa_t *spa, dsl_dataset_t *ds, blkptr_t *bp,
772 if (ds != NULL)
773 VERIFY0(dmu_objset_from_ds(ds, &os));
787 * This precaution is not necessary for the MOS (ds == NULL),
793 if (ds != NULL) {
824 dsl_dataset_dirty(ds, tx);
876 dsl_dataset_t *ds;
886 VERIFY0(dsl_dataset_hold_obj(pdd->dd_pool, obj, FTAG, &ds));
887 rrw_enter(&ds->ds_bp_rwlock, RW_READER, FTAG);
888 bp = dsl_dataset_get_blkptr(ds);
890 ds, bp, doca->doca_type, tx);
891 rrw_exit(&ds->ds_bp_rwlock, FTAG);
898 spa_history_log_internal_ds(ds, "create", tx, "");
899 dsl_dataset_rele(ds, FTAG);
981 dsl_dataset_t *origin, *ds;
991 VERIFY0(dsl_dataset_hold_obj(pdd->dd_pool, obj, FTAG, &ds));
993 spa_history_log_internal_ds(ds, "clone", tx,
995 dsl_dataset_rele(ds, FTAG);
1094 dsl_dataset_t *ds = os->os_dsl_dataset;
1097 (void) dsl_dataset_block_kill(ds, bp_orig, tx, B_TRUE);
1098 dsl_dataset_block_born(ds, bp, tx);
1617 dsl_dataset_t *ds = os->os_dsl_dataset;
1620 if (dsl_dataset_phys(ds)->ds_snapnames_zapobj == 0)
1623 return (zap_lookup_norm(ds->ds_dir->dd_pool->dp_meta_objset,
1624 dsl_dataset_phys(ds)->ds_snapnames_zapobj, name, 8, 1, &ignored,
1632 dsl_dataset_t *ds = os->os_dsl_dataset;
1638 if (dsl_dataset_phys(ds)->ds_snapnames_zapobj == 0)
1642 ds->ds_dir->dd_pool->dp_meta_objset,
1643 dsl_dataset_phys(ds)->ds_snapnames_zapobj, *offp);
1721 dsl_dataset_t *ds;
1779 dsl_dataset_t *ds;
1780 err = dsl_dataset_hold_obj(dp, thisobj, FTAG, &ds);
1785 snapobj = dsl_dataset_phys(ds)->ds_snapnames_zapobj;
1786 dsl_dataset_rele(ds, FTAG);
1796 attr->za_first_integer, FTAG, &ds);
1799 err = dcp->dc_func(dp, ds, dcp->dc_arg);
1800 dsl_dataset_rele(ds, FTAG);
1818 err = dsl_dataset_hold_obj(dp, thisobj, FTAG, &ds);
1829 err = dcp->dc_func(dp, ds, dcp->dc_arg);
1830 dsl_dataset_rele(ds, FTAG);
1868 * Find objsets under and including ddobj, call func(ds) on each.
1959 dsl_dataset_t *ds;
2019 err = dsl_dataset_hold_obj(dp, thisobj, FTAG, &ds);
2024 snapobj = dsl_dataset_phys(ds)->ds_snapnames_zapobj;
2025 dsl_dataset_rele(ds, FTAG);