Lines Matching refs:dd

359 dsl_dir_get_encryption_root_ddobj(dsl_dir_t *dd, uint64_t *rddobj)  in dsl_dir_get_encryption_root_ddobj()  argument
361 if (dd->dd_crypto_obj == 0) in dsl_dir_get_encryption_root_ddobj()
364 return (zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dir_get_encryption_root_ddobj()
369 dsl_dir_get_encryption_version(dsl_dir_t *dd, uint64_t *version) in dsl_dir_get_encryption_version() argument
373 if (dd->dd_crypto_obj == 0) in dsl_dir_get_encryption_version()
377 (void) zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dir_get_encryption_version()
384 dsl_dir_incompatible_encryption_version(dsl_dir_t *dd) in dsl_dir_incompatible_encryption_version() argument
389 ret = dsl_dir_get_encryption_version(dd, &version); in dsl_dir_incompatible_encryption_version()
428 spa_keystore_wkey_hold_dd(spa_t *spa, dsl_dir_t *dd, void *tag, in spa_keystore_wkey_hold_dd() argument
442 ret = dsl_dir_get_encryption_root_ddobj(dd, &rddobj); in spa_keystore_wkey_hold_dd()
470 dsl_dir_t *dd = NULL; in dsl_crypto_can_set_keylocation() local
479 ret = dsl_dir_hold(dp, dsname, FTAG, &dd, NULL); in dsl_crypto_can_set_keylocation()
484 if (dd->dd_crypto_obj == 0) { in dsl_crypto_can_set_keylocation()
501 ret = dsl_dir_get_encryption_root_ddobj(dd, &rddobj); in dsl_crypto_can_set_keylocation()
505 if (rddobj != dd->dd_object) { in dsl_crypto_can_set_keylocation()
510 dsl_dir_rele(dd, FTAG); in dsl_crypto_can_set_keylocation()
516 if (dd != NULL) in dsl_crypto_can_set_keylocation()
517 dsl_dir_rele(dd, FTAG); in dsl_crypto_can_set_keylocation()
661 spa_keystore_dsl_key_hold_dd(spa_t *spa, dsl_dir_t *dd, void *tag, in spa_keystore_dsl_key_hold_dd() argument
668 uint64_t dckobj = dd->dd_crypto_obj; in spa_keystore_dsl_key_hold_dd()
680 ret = spa_keystore_wkey_hold_dd(spa, dd, FTAG, &wkey); in spa_keystore_dsl_key_hold_dd()
762 dsl_dir_t *dd = NULL; in spa_keystore_load_wkey() local
788 ret = dsl_dir_hold(dp, dsname, FTAG, &dd, NULL); in spa_keystore_load_wkey()
793 wkey->wk_ddobj = dd->dd_object; in spa_keystore_load_wkey()
797 dd->dd_crypto_obj, FTAG, &dck); in spa_keystore_load_wkey()
802 ret = zap_lookup(dp->dp_meta_objset, dd->dd_crypto_obj, in spa_keystore_load_wkey()
807 ret = zap_lookup(dp->dp_meta_objset, dd->dd_crypto_obj, in spa_keystore_load_wkey()
812 ret = zap_lookup(dp->dp_meta_objset, dd->dd_crypto_obj, in spa_keystore_load_wkey()
842 dsl_dir_rele(dd, FTAG); in spa_keystore_load_wkey()
850 if (dd != NULL) in spa_keystore_load_wkey()
851 dsl_dir_rele(dd, FTAG); in spa_keystore_load_wkey()
898 dsl_dir_t *dd = NULL; in spa_keystore_unload_wkey() local
925 ret = dsl_dir_hold(dp, dsname, FTAG, &dd, NULL); in spa_keystore_unload_wkey()
930 ret = spa_keystore_unload_wkey_impl(dp->dp_spa, dd->dd_object); in spa_keystore_unload_wkey()
934 dsl_dir_rele(dd, FTAG); in spa_keystore_unload_wkey()
940 if (dd != NULL) in spa_keystore_unload_wkey()
941 dsl_dir_rele(dd, FTAG); in spa_keystore_unload_wkey()
1135 dmu_objset_check_wkey_loaded(dsl_dir_t *dd) in dmu_objset_check_wkey_loaded() argument
1140 ret = spa_keystore_wkey_hold_dd(dd->dd_pool->dp_spa, dd, FTAG, in dmu_objset_check_wkey_loaded()
1151 dsl_dataset_get_keystatus(dsl_dir_t *dd) in dsl_dataset_get_keystatus() argument
1154 if (dd->dd_crypto_obj == 0) in dsl_dataset_get_keystatus()
1157 return (dmu_objset_check_wkey_loaded(dd) == 0 ? in dsl_dataset_get_keystatus()
1162 dsl_dir_get_crypt(dsl_dir_t *dd, uint64_t *crypt) in dsl_dir_get_crypt() argument
1164 if (dd->dd_crypto_obj == 0) { in dsl_dir_get_crypt()
1169 return (zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dir_get_crypt()
1229 dsl_dir_t *dd = NULL; in spa_keystore_change_key_check() local
1251 ret = dsl_dir_hold(dp, skcka->skcka_dsname, FTAG, &dd, NULL); in spa_keystore_change_key_check()
1256 if (dd->dd_crypto_obj == 0) { in spa_keystore_change_key_check()
1262 if (dsl_dir_is_clone(dd)) { in spa_keystore_change_key_check()
1268 ret = dsl_dir_get_encryption_root_ddobj(dd, &rddobj); in spa_keystore_change_key_check()
1284 if (dd->dd_object != rddobj) { in spa_keystore_change_key_check()
1290 if (dd->dd_parent->dd_crypto_obj == 0) { in spa_keystore_change_key_check()
1297 ret = dmu_objset_check_wkey_loaded(dd); in spa_keystore_change_key_check()
1301 ret = dmu_objset_check_wkey_loaded(dd->dd_parent); in spa_keystore_change_key_check()
1306 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_check()
1321 if (dd->dd_object == rddobj) { in spa_keystore_change_key_check()
1326 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_check()
1354 if (dd->dd_object != rddobj && dcp->cp_keylocation == NULL) { in spa_keystore_change_key_check()
1381 ret = dmu_objset_check_wkey_loaded(dd); in spa_keystore_change_key_check()
1385 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_check()
1390 if (dd != NULL) in spa_keystore_change_key_check()
1391 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_check()
1412 dsl_dir_t *dd = NULL; in spa_keystore_change_key_sync_impl() local
1419 VERIFY0(dsl_dir_hold_obj(dp, ddobj, NULL, FTAG, &dd)); in spa_keystore_change_key_sync_impl()
1422 if (dd->dd_myname[0] == '$' || dd->dd_myname[0] == '%') { in spa_keystore_change_key_sync_impl()
1423 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_sync_impl()
1427 ret = dsl_dir_get_encryption_root_ddobj(dd, &curr_rddobj); in spa_keystore_change_key_sync_impl()
1435 (!skip && (curr_rddobj != rddobj || dsl_dir_is_clone(dd)))) { in spa_keystore_change_key_sync_impl()
1436 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_sync_impl()
1448 dd->dd_crypto_obj, in spa_keystore_change_key_sync_impl()
1452 VERIFY0(spa_keystore_dsl_key_hold_dd(dp->dp_spa, dd, in spa_keystore_change_key_sync_impl()
1467 dsl_dir_phys(dd)->dd_child_dir_zapobj); in spa_keystore_change_key_sync_impl()
1482 dsl_dir_phys(dd)->dd_clones); in spa_keystore_change_key_sync_impl()
1498 dsl_dir_rele(dd, FTAG); in spa_keystore_change_key_sync_impl()
1618 dsl_dir_rename_crypt_check(dsl_dir_t *dd, dsl_dir_t *newparent) in dsl_dir_rename_crypt_check() argument
1623 if (dd->dd_crypto_obj == 0) in dsl_dir_rename_crypt_check()
1626 ret = dsl_dir_get_encryption_root_ddobj(dd, &curr_rddobj); in dsl_dir_rename_crypt_check()
1634 if (dd->dd_object != curr_rddobj) { in dsl_dir_rename_crypt_check()
1865 dsl_dataset_create_crypt_sync(uint64_t dsobj, dsl_dir_t *dd, in dsl_dataset_create_crypt_sync() argument
1868 dsl_pool_t *dp = dd->dd_pool; in dsl_dataset_create_crypt_sync()
1873 if (dsl_dir_is_clone(dd)) { in dsl_dataset_create_crypt_sync()
1881 dmu_buf_will_dirty(dd->dd_dbuf, tx); in dsl_dataset_create_crypt_sync()
1882 dsl_dir_zapify(dd, tx); in dsl_dataset_create_crypt_sync()
1884 dd->dd_crypto_obj = in dsl_dataset_create_crypt_sync()
1886 VERIFY0(zap_add(dp->dp_meta_objset, dd->dd_object, in dsl_dataset_create_crypt_sync()
1888 &dd->dd_crypto_obj, tx)); in dsl_dataset_create_crypt_sync()
1906 if (crypt == ZIO_CRYPT_INHERIT && dd->dd_parent != NULL) in dsl_dataset_create_crypt_sync()
1907 VERIFY0(dsl_dir_get_crypt(dd->dd_parent, &crypt)); in dsl_dataset_create_crypt_sync()
1914 dmu_buf_will_dirty(dd->dd_dbuf, tx); in dsl_dataset_create_crypt_sync()
1915 dsl_dir_zapify(dd, tx); in dsl_dataset_create_crypt_sync()
1920 dd->dd_parent, FTAG, &wkey)); in dsl_dataset_create_crypt_sync()
1922 wkey->wk_ddobj = dd->dd_object; in dsl_dataset_create_crypt_sync()
1928 dd->dd_crypto_obj = dsl_crypto_key_create_sync(crypt, wkey, tx); in dsl_dataset_create_crypt_sync()
1929 VERIFY0(zap_add(dp->dp_meta_objset, dd->dd_object, in dsl_dataset_create_crypt_sync()
1930 DD_FIELD_CRYPTO_KEY_OBJ, sizeof (uint64_t), 1, &dd->dd_crypto_obj, in dsl_dataset_create_crypt_sync()
2256 dsl_dir_t *dd = ds->ds_dir; in dsl_crypto_recv_raw_key_sync() local
2281 if (dd->dd_crypto_obj == 0) { in dsl_crypto_recv_raw_key_sync()
2283 dmu_buf_will_dirty(dd->dd_dbuf, tx); in dsl_crypto_recv_raw_key_sync()
2284 dsl_dir_zapify(dd, tx); in dsl_crypto_recv_raw_key_sync()
2287 dd->dd_crypto_obj = zap_create(mos, in dsl_crypto_recv_raw_key_sync()
2290 dd->dd_crypto_obj, DSL_CRYPTO_KEY_REFCOUNT, in dsl_crypto_recv_raw_key_sync()
2293 dd->dd_crypto_obj, DSL_CRYPTO_KEY_VERSION, in dsl_crypto_recv_raw_key_sync()
2302 VERIFY0(zap_add(mos, dd->dd_object, DD_FIELD_CRYPTO_KEY_OBJ, in dsl_crypto_recv_raw_key_sync()
2303 sizeof (uint64_t), 1, &dd->dd_crypto_obj, tx)); in dsl_crypto_recv_raw_key_sync()
2315 rddobj = dd->dd_object; in dsl_crypto_recv_raw_key_sync()
2317 VERIFY0(dsl_dir_get_encryption_root_ddobj(dd, &rddobj)); in dsl_crypto_recv_raw_key_sync()
2321 dsl_crypto_key_sync_impl(mos, dd->dd_crypto_obj, crypt, in dsl_crypto_recv_raw_key_sync()
2624 dsl_dir_t *dd = ds->ds_dir; in dsl_dataset_crypt_stats() local
2628 if (dd->dd_crypto_obj == 0) in dsl_dataset_crypt_stats()
2631 intval = dsl_dataset_get_keystatus(dd); in dsl_dataset_crypt_stats()
2634 if (dsl_dir_get_crypt(dd, &intval) == 0) in dsl_dataset_crypt_stats()
2636 if (zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dataset_crypt_stats()
2640 if (zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dataset_crypt_stats()
2644 if (zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dataset_crypt_stats()
2648 if (zap_lookup(dd->dd_pool->dp_meta_objset, dd->dd_crypto_obj, in dsl_dataset_crypt_stats()
2652 if (zap_lookup(dd->dd_pool->dp_meta_objset, ds->ds_object, in dsl_dataset_crypt_stats()
2657 if (dsl_dir_get_encryption_root_ddobj(dd, &intval) == 0) { in dsl_dataset_crypt_stats()
2658 VERIFY0(dsl_dir_hold_obj(dd->dd_pool, intval, NULL, FTAG, in dsl_dataset_crypt_stats()