Lines Matching refs:dbn
334 dsl_bookmark_node_t *dbn = kmem_alloc(sizeof (*dbn), KM_SLEEP); in dsl_bookmark_node_alloc() local
335 dbn->dbn_name = spa_strdup(shortname); in dsl_bookmark_node_alloc()
336 dbn->dbn_dirty = B_FALSE; in dsl_bookmark_node_alloc()
337 mutex_init(&dbn->dbn_lock, NULL, MUTEX_DEFAULT, NULL); in dsl_bookmark_node_alloc()
338 return (dbn); in dsl_bookmark_node_alloc()
393 dsl_bookmark_node_add(dsl_dataset_t *hds, dsl_bookmark_node_t *dbn, in dsl_bookmark_node_add() argument
412 avl_add(&hds->ds_bookmarks, dbn); in dsl_bookmark_node_add()
421 (dbn->dbn_phys.zbm_ivset_guid != 0 || dbn->dbn_phys.zbm_flags & in dsl_bookmark_node_add()
422 ZBM_FLAG_HAS_FBN || dbn->dbn_phys.zbm_redaction_obj != 0)) { in dsl_bookmark_node_add()
428 ASSERT0(memcmp(((char *)&dbn->dbn_phys) + bookmark_phys_size, in dsl_bookmark_node_add()
431 VERIFY0(zap_add(mos, hds->ds_bookmarks_obj, dbn->dbn_name, in dsl_bookmark_node_add()
433 &dbn->dbn_phys, tx)); in dsl_bookmark_node_add()
457 dsl_bookmark_node_t *dbn = dsl_bookmark_node_alloc(shortname); in dsl_bookmark_create_sync_impl_snap() local
458 dsl_bookmark_set_phys(&dbn->dbn_phys, snapds); in dsl_bookmark_create_sync_impl_snap()
473 dbn->dbn_phys.zbm_redaction_obj = dmu_object_alloc(mos, in dsl_bookmark_create_sync_impl_snap()
484 dbn->dbn_phys.zbm_redaction_obj, tag, &local_rl)); in dsl_bookmark_create_sync_impl_snap()
514 if (dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN) { in dsl_bookmark_create_sync_impl_snap()
519 dsl_bookmark_node_add(bmark_fs, dbn, tx); in dsl_bookmark_create_sync_impl_snap()
523 shortname, (longlong_t)dbn->dbn_phys.zbm_creation_txg, in dsl_bookmark_create_sync_impl_snap()
525 (longlong_t)dbn->dbn_phys.zbm_redaction_obj); in dsl_bookmark_create_sync_impl_snap()
805 for (dsl_bookmark_node_t *dbn = avl_first(&ds->ds_bookmarks); in dsl_get_bookmarks_impl() local
806 dbn != NULL; dbn = AVL_NEXT(&ds->ds_bookmarks, dbn)) { in dsl_get_bookmarks_impl()
809 dsl_bookmark_fetch_props(dp, &dbn->dbn_phys, props, out_props); in dsl_get_bookmarks_impl()
811 fnvlist_add_nvlist(outnvl, dbn->dbn_name, out_props); in dsl_get_bookmarks_impl()
880 dsl_bookmark_node_t *dbn = in dsl_bookmark_init_ds() local
884 dbn->dbn_name, &dbn->dbn_phys); in dsl_bookmark_init_ds()
887 kmem_free(dbn, sizeof (*dbn)); in dsl_bookmark_init_ds()
890 avl_add(&ds->ds_bookmarks, dbn); in dsl_bookmark_init_ds()
903 dsl_bookmark_node_t *dbn; in dsl_bookmark_fini_ds() local
908 while ((dbn = avl_destroy_nodes(&ds->ds_bookmarks, &cookie)) != NULL) { in dsl_bookmark_fini_ds()
909 spa_strfree(dbn->dbn_name); in dsl_bookmark_fini_ds()
910 mutex_destroy(&dbn->dbn_lock); in dsl_bookmark_fini_ds()
911 kmem_free(dbn, sizeof (*dbn)); in dsl_bookmark_fini_ds()
1020 dsl_bookmark_node_t *dbn = avl_find(&ds->ds_bookmarks, &search, NULL); in dsl_bookmark_destroy_sync_impl() local
1021 ASSERT(dbn != NULL); in dsl_bookmark_destroy_sync_impl()
1023 if (dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN) { in dsl_bookmark_destroy_sync_impl()
1041 AVL_PREV(&ds->ds_bookmarks, dbn); in dsl_bookmark_destroy_sync_impl()
1043 AVL_NEXT(&ds->ds_bookmarks, dbn); in dsl_bookmark_destroy_sync_impl()
1047 dbn->dbn_phys.zbm_creation_txg && in dsl_bookmark_destroy_sync_impl()
1050 dbn->dbn_phys.zbm_creation_txg && in dsl_bookmark_destroy_sync_impl()
1053 if (!(dbn->dbn_phys.zbm_flags & ZBM_FLAG_SNAPSHOT_EXISTS) && in dsl_bookmark_destroy_sync_impl()
1055 dbn->dbn_phys.zbm_creation_txg < in dsl_bookmark_destroy_sync_impl()
1058 dbn->dbn_phys.zbm_creation_txg, tx); in dsl_bookmark_destroy_sync_impl()
1060 dbn->dbn_phys.zbm_creation_txg, tx); in dsl_bookmark_destroy_sync_impl()
1067 if (dbn->dbn_phys.zbm_redaction_obj != 0) { in dsl_bookmark_destroy_sync_impl()
1070 dbn->dbn_phys.zbm_redaction_obj, FTAG, &rl)); in dsl_bookmark_destroy_sync_impl()
1077 dbn->dbn_phys.zbm_redaction_obj, tx)); in dsl_bookmark_destroy_sync_impl()
1082 avl_remove(&ds->ds_bookmarks, dbn); in dsl_bookmark_destroy_sync_impl()
1083 spa_strfree(dbn->dbn_name); in dsl_bookmark_destroy_sync_impl()
1084 mutex_destroy(&dbn->dbn_lock); in dsl_bookmark_destroy_sync_impl()
1085 kmem_free(dbn, sizeof (*dbn)); in dsl_bookmark_destroy_sync_impl()
1337 dsl_bookmark_node_t *dbn = in dsl_bookmark_ds_destroyed() local
1345 for (; dbn != NULL && dbn->dbn_phys.zbm_creation_txg < in dsl_bookmark_ds_destroyed()
1347 dbn = AVL_NEXT(&head->ds_bookmarks, dbn)) { in dsl_bookmark_ds_destroyed()
1348 if (!(dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN)) in dsl_bookmark_ds_destroyed()
1360 0, dbn->dbn_phys.zbm_creation_txg, in dsl_bookmark_ds_destroyed()
1362 dbn->dbn_phys.zbm_referenced_freed_before_next_snap += in dsl_bookmark_ds_destroyed()
1364 dbn->dbn_phys.zbm_compressed_freed_before_next_snap += in dsl_bookmark_ds_destroyed()
1366 dbn->dbn_phys.zbm_uncompressed_freed_before_next_snap += in dsl_bookmark_ds_destroyed()
1369 dbn->dbn_name, sizeof (uint64_t), in dsl_bookmark_ds_destroyed()
1371 &dbn->dbn_phys, tx)); in dsl_bookmark_ds_destroyed()
1383 for (; dbn != NULL && dbn->dbn_phys.zbm_creation_txg == in dsl_bookmark_ds_destroyed()
1385 dbn = AVL_NEXT(&head->ds_bookmarks, dbn)) { in dsl_bookmark_ds_destroyed()
1386 if (!(dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN)) { in dsl_bookmark_ds_destroyed()
1387 ASSERT(!(dbn->dbn_phys.zbm_flags & in dsl_bookmark_ds_destroyed()
1391 ASSERT(dbn->dbn_phys.zbm_flags & ZBM_FLAG_SNAPSHOT_EXISTS); in dsl_bookmark_ds_destroyed()
1392 dbn->dbn_phys.zbm_flags &= ~ZBM_FLAG_SNAPSHOT_EXISTS; in dsl_bookmark_ds_destroyed()
1394 dbn->dbn_name, sizeof (uint64_t), in dsl_bookmark_ds_destroyed()
1396 &dbn->dbn_phys, tx)); in dsl_bookmark_ds_destroyed()
1417 for (dsl_bookmark_node_t *dbn = avl_last(&ds->ds_bookmarks); in dsl_bookmark_snapshotted() local
1418 dbn != NULL && dbn->dbn_phys.zbm_creation_txg > in dsl_bookmark_snapshotted()
1420 dbn = AVL_PREV(&ds->ds_bookmarks, dbn)) { in dsl_bookmark_snapshotted()
1421 uint64_t creation_txg = dbn->dbn_phys.zbm_creation_txg; in dsl_bookmark_snapshotted()
1429 if ((dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN) && in dsl_bookmark_snapshotted()
1464 dsl_bookmark_node_t *dbn = in dsl_bookmark_next_changed() local
1471 for (; dbn != NULL && dbn->dbn_phys.zbm_creation_txg == in dsl_bookmark_next_changed()
1473 (dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN); in dsl_bookmark_next_changed()
1474 dbn = AVL_NEXT(&head->ds_bookmarks, dbn)) { in dsl_bookmark_next_changed()
1482 ASSERT3U(dbn->dbn_phys.zbm_guid, ==, in dsl_bookmark_next_changed()
1484 ASSERT3U(dbn->dbn_phys.zbm_referenced_bytes_refd, ==, in dsl_bookmark_next_changed()
1486 ASSERT(dbn->dbn_phys.zbm_flags & in dsl_bookmark_next_changed()
1493 dbn->dbn_phys.zbm_redaction_obj; in dsl_bookmark_next_changed()
1494 dsl_bookmark_set_phys(&dbn->dbn_phys, origin); in dsl_bookmark_next_changed()
1495 dbn->dbn_phys.zbm_redaction_obj = redaction_obj; in dsl_bookmark_next_changed()
1498 dbn->dbn_name, sizeof (uint64_t), in dsl_bookmark_next_changed()
1500 &dbn->dbn_phys, tx)); in dsl_bookmark_next_changed()
1518 for (dsl_bookmark_node_t *dbn = avl_last(&ds->ds_bookmarks); in dsl_bookmark_block_killed() local
1519 dbn != NULL && dbn->dbn_phys.zbm_creation_txg >= in dsl_bookmark_block_killed()
1521 dbn = AVL_PREV(&ds->ds_bookmarks, dbn)) { in dsl_bookmark_block_killed()
1527 dbn->dbn_phys.zbm_creation_txg && in dsl_bookmark_block_killed()
1528 (dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN)) { in dsl_bookmark_block_killed()
1529 mutex_enter(&dbn->dbn_lock); in dsl_bookmark_block_killed()
1530 dbn->dbn_phys.zbm_referenced_freed_before_next_snap += in dsl_bookmark_block_killed()
1532 dbn->dbn_phys.zbm_compressed_freed_before_next_snap += in dsl_bookmark_block_killed()
1534 dbn->dbn_phys.zbm_uncompressed_freed_before_next_snap += in dsl_bookmark_block_killed()
1544 dbn->dbn_dirty = B_TRUE; in dsl_bookmark_block_killed()
1545 mutex_exit(&dbn->dbn_lock); in dsl_bookmark_block_killed()
1564 for (dsl_bookmark_node_t *dbn = avl_last(&ds->ds_bookmarks); in dsl_bookmark_sync_done() local
1565 dbn != NULL && dbn->dbn_phys.zbm_creation_txg >= in dsl_bookmark_sync_done()
1567 dbn = AVL_PREV(&ds->ds_bookmarks, dbn)) { in dsl_bookmark_sync_done()
1568 if (dbn->dbn_dirty) { in dsl_bookmark_sync_done()
1573 ASSERT(dbn->dbn_phys.zbm_flags & ZBM_FLAG_HAS_FBN); in dsl_bookmark_sync_done()
1576 dbn->dbn_name, sizeof (uint64_t), in dsl_bookmark_sync_done()
1578 &dbn->dbn_phys, tx)); in dsl_bookmark_sync_done()
1579 dbn->dbn_dirty = B_FALSE; in dsl_bookmark_sync_done()
1583 for (dsl_bookmark_node_t *dbn = avl_first(&ds->ds_bookmarks); in dsl_bookmark_sync_done() local
1584 dbn != NULL; dbn = AVL_NEXT(&ds->ds_bookmarks, dbn)) { in dsl_bookmark_sync_done()
1585 ASSERT(!dbn->dbn_dirty); in dsl_bookmark_sync_done()
1597 dsl_bookmark_node_t *dbn = avl_last(&ds->ds_bookmarks); in dsl_bookmark_latest_txg() local
1598 if (dbn == NULL) in dsl_bookmark_latest_txg()
1600 return (dbn->dbn_phys.zbm_creation_txg); in dsl_bookmark_latest_txg()