Lines Matching refs:ds

52 dsl_dataset_user_hold_check_one(dsl_dataset_t *ds, const char *htag,  in dsl_dataset_user_hold_check_one()  argument
68 if (ds != NULL && dsl_dataset_phys(ds)->ds_userrefs_obj != 0) { in dsl_dataset_user_hold_check_one()
71 error = zap_lookup(mos, dsl_dataset_phys(ds)->ds_userrefs_obj, in dsl_dataset_user_hold_check_one()
117 dsl_dataset_t *ds; in dsl_dataset_user_hold_check() local
130 error = dsl_dataset_hold(dp, name, FTAG, &ds); in dsl_dataset_user_hold_check()
133 error = dsl_dataset_user_hold_check_one(ds, htag, in dsl_dataset_user_hold_check()
135 dsl_dataset_rele(ds, FTAG); in dsl_dataset_user_hold_check()
156 dsl_dataset_user_hold_sync_one_impl(nvlist_t *tmpholds, dsl_dataset_t *ds, in dsl_dataset_user_hold_sync_one_impl() argument
159 dsl_pool_t *dp = ds->ds_dir->dd_pool; in dsl_dataset_user_hold_sync_one_impl()
165 if (dsl_dataset_phys(ds)->ds_userrefs_obj == 0) { in dsl_dataset_user_hold_sync_one_impl()
170 dmu_buf_will_dirty(ds->ds_dbuf, tx); in dsl_dataset_user_hold_sync_one_impl()
171 zapobj = dsl_dataset_phys(ds)->ds_userrefs_obj = in dsl_dataset_user_hold_sync_one_impl()
174 zapobj = dsl_dataset_phys(ds)->ds_userrefs_obj; in dsl_dataset_user_hold_sync_one_impl()
176 ds->ds_userrefs++; in dsl_dataset_user_hold_sync_one_impl()
184 VERIFY0(dsl_pool_user_hold(dp, ds->ds_object, in dsl_dataset_user_hold_sync_one_impl()
187 (u_longlong_t)ds->ds_object); in dsl_dataset_user_hold_sync_one_impl()
199 spa_history_log_internal_ds(ds, "hold", tx, in dsl_dataset_user_hold_sync_one_impl()
201 htag, minor != 0, (u_longlong_t)ds->ds_userrefs); in dsl_dataset_user_hold_sync_one_impl()
260 dsl_dataset_user_hold_sync_one(dsl_dataset_t *ds, const char *htag, in dsl_dataset_user_hold_sync_one() argument
269 dsl_dataset_user_hold_sync_one_impl(tmpholds, ds, htag, minor, now, tx); in dsl_dataset_user_hold_sync_one()
270 dsl_onexit_hold_cleanup(dsl_dataset_get_spa(ds), tmpholds, minor); in dsl_dataset_user_hold_sync_one()
288 dsl_dataset_t *ds; in dsl_dataset_user_hold_sync() local
290 VERIFY0(dsl_dataset_hold(dp, nvpair_name(pair), FTAG, &ds)); in dsl_dataset_user_hold_sync()
291 dsl_dataset_user_hold_sync_one_impl(tmpholds, ds, in dsl_dataset_user_hold_sync()
293 dsl_dataset_rele(ds, FTAG); in dsl_dataset_user_hold_sync()
371 dsl_dataset_t *ds, nvlist_t *holds, const char *snapname) in dsl_dataset_user_release_check_one() argument
378 if (!ds->ds_is_snapshot) in dsl_dataset_user_release_check_one()
385 mos = ds->ds_dir->dd_pool->dp_meta_objset; in dsl_dataset_user_release_check_one()
386 zapobj = dsl_dataset_phys(ds)->ds_userrefs_obj; in dsl_dataset_user_release_check_one()
424 if (DS_IS_DEFER_DESTROY(ds) && in dsl_dataset_user_release_check_one()
425 dsl_dataset_phys(ds)->ds_num_children == 1 && in dsl_dataset_user_release_check_one()
426 ds->ds_userrefs == numholds) { in dsl_dataset_user_release_check_one()
428 if (dsl_dataset_long_held(ds)) { in dsl_dataset_user_release_check_one()
464 dsl_dataset_t *ds; in dsl_dataset_user_release_check() local
472 error = holdfunc(dp, snapname, FTAG, &ds); in dsl_dataset_user_release_check()
474 error = dsl_dataset_user_release_check_one(ddura, ds, in dsl_dataset_user_release_check()
476 dsl_dataset_rele(ds, FTAG); in dsl_dataset_user_release_check()
496 dsl_dataset_user_release_sync_one(dsl_dataset_t *ds, nvlist_t *holds, in dsl_dataset_user_release_sync_one() argument
499 dsl_pool_t *dp = ds->ds_dir->dd_pool; in dsl_dataset_user_release_sync_one()
508 error = dsl_pool_user_release(dp, ds->ds_object, holdname, tx); in dsl_dataset_user_release_sync_one()
511 VERIFY0(zap_remove(mos, dsl_dataset_phys(ds)->ds_userrefs_obj, in dsl_dataset_user_release_sync_one()
513 ds->ds_userrefs--; in dsl_dataset_user_release_sync_one()
515 spa_history_log_internal_ds(ds, "release", tx, in dsl_dataset_user_release_sync_one()
516 "tag=%s refs=%lld", holdname, (longlong_t)ds->ds_userrefs); in dsl_dataset_user_release_sync_one()
532 dsl_dataset_t *ds; in dsl_dataset_user_release_sync() local
535 VERIFY0(holdfunc(dp, name, FTAG, &ds)); in dsl_dataset_user_release_sync()
537 dsl_dataset_user_release_sync_one(ds, in dsl_dataset_user_release_sync()
540 ASSERT(ds->ds_userrefs == 0 && in dsl_dataset_user_release_sync()
541 dsl_dataset_phys(ds)->ds_num_children == 1 && in dsl_dataset_user_release_sync()
542 DS_IS_DEFER_DESTROY(ds)); in dsl_dataset_user_release_sync()
543 dsl_destroy_snapshot_sync_impl(ds, B_FALSE, tx); in dsl_dataset_user_release_sync()
545 dsl_dataset_rele(ds, FTAG); in dsl_dataset_user_release_sync()
594 dsl_dataset_t *ds; in dsl_dataset_user_release_impl() local
598 nvpair_name(pair), FTAG, &ds); in dsl_dataset_user_release_impl()
601 dsl_dataset_name(ds, name); in dsl_dataset_user_release_impl()
603 dsl_dataset_rele(ds, FTAG); in dsl_dataset_user_release_impl()
662 dsl_dataset_t *ds; in dsl_dataset_get_holds() local
668 err = dsl_dataset_hold(dp, dsname, FTAG, &ds); in dsl_dataset_get_holds()
674 if (dsl_dataset_phys(ds)->ds_userrefs_obj != 0) { in dsl_dataset_get_holds()
679 for (zap_cursor_init(&zc, ds->ds_dir->dd_pool->dp_meta_objset, in dsl_dataset_get_holds()
680 dsl_dataset_phys(ds)->ds_userrefs_obj); in dsl_dataset_get_holds()
689 dsl_dataset_rele(ds, FTAG); in dsl_dataset_get_holds()