Lines Matching refs:dp

96 dsl_scan_init(dsl_pool_t *dp, uint64_t txg)
100 spa_t *spa = dp->dp_spa;
103 scn = dp->dp_scan = kmem_zalloc(sizeof (dsl_scan_t), KM_SLEEP);
104 scn->scn_dp = dp;
112 scn->scn_async_destroying = spa_feature_is_active(dp->dp_spa,
115 err = zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT,
131 (void) zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT,
135 err = zap_lookup(dp->dp_meta_objset, DMU_POOL_DIRECTORY_OBJECT,
144 spa_prev_software_version(dp->dp_spa) < SPA_VERSION_SCAN) {
164 dsl_scan_fini(dsl_pool_t *dp)
166 if (dp->dp_scan) {
167 kmem_free(dp->dp_scan, sizeof (dsl_scan_t));
168 dp->dp_scan = NULL;
190 dsl_pool_t *dp = scn->scn_dp;
191 spa_t *spa = dp->dp_spa;
234 if (dp->dp_blkstats == NULL) {
235 dp->dp_blkstats =
238 bzero(dp->dp_blkstats, sizeof (zfs_all_blkstats_t));
243 scn->scn_phys.scn_queue_obj = zap_create(dp->dp_meta_objset,
269 dsl_pool_t *dp = scn->scn_dp;
270 spa_t *spa = dp->dp_spa;
275 (void) zap_remove(dp->dp_meta_objset,
280 VERIFY(0 == dmu_object_free(dp->dp_meta_objset,
362 dsl_scan_cancel(dsl_pool_t *dp)
364 return (dsl_sync_task(spa_name(dp->dp_spa), dsl_scan_cancel_check,
376 dsl_free(dsl_pool_t *dp, uint64_t txg, const blkptr_t *bp)
378 zio_free(dp->dp_spa, txg, bp);
382 dsl_free_sync(zio_t *pio, dsl_pool_t *dp, uint64_t txg, const blkptr_t *bpp)
384 ASSERT(dsl_pool_sync_context(dp));
385 zio_nowait(zio_free_sync(pio, dp->dp_spa, txg, bpp, pio->io_flags));
477 dsl_pool_t *dp = zsa->zsa_dp;
478 dsl_scan_t *scn = dp->dp_scan;
491 if (claim_txg == 0 && bp->blk_birth >= spa_first_txg(dp->dp_spa))
497 VERIFY(0 == scan_funcs[scn->scn_phys.scn_func](dp, bp, &zb));
507 dsl_pool_t *dp = zsa->zsa_dp;
508 dsl_scan_t *scn = dp->dp_scan;
530 VERIFY(0 == scan_funcs[scn->scn_phys.scn_func](dp, bp, &zb));
536 dsl_scan_zil(dsl_pool_t *dp, zil_header_t *zh)
539 zil_scan_arg_t zsa = { dp, zh };
546 if (claim_txg == 0 && spa_writeable(dp->dp_spa))
549 zilog = zil_alloc(dp->dp_meta_objset, zh);
624 dsl_pool_t *dp = scn->scn_dp;
635 err = arc_read(NULL, dp->dp_spa, bp, arc_getbuf_func, &buf,
662 err = arc_read(NULL, dp->dp_spa, bp, arc_getbuf_func, &buf,
686 err = arc_read(NULL, dp->dp_spa, bp, arc_getbuf_func, &buf,
752 dsl_pool_t *dp = scn->scn_dp;
786 if (ddt_class_contains(dp->dp_spa,
800 scan_funcs[scn->scn_phys.scn_func](dp, bp, zb);
821 dsl_pool_t *dp = ds->ds_dir->dd_pool;
822 dsl_scan_t *scn = dp->dp_scan;
855 } else if (zap_lookup_int_key(dp->dp_meta_objset,
858 VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset,
866 VERIFY(zap_add_int_key(dp->dp_meta_objset,
891 dsl_pool_t *dp = ds->ds_dir->dd_pool;
892 dsl_scan_t *scn = dp->dp_scan;
907 } else if (zap_lookup_int_key(dp->dp_meta_objset,
909 VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset,
911 VERIFY(zap_add_int_key(dp->dp_meta_objset,
925 dsl_pool_t *dp = ds1->ds_dir->dd_pool;
926 dsl_scan_t *scn = dp->dp_scan;
946 if (zap_lookup_int_key(dp->dp_meta_objset, scn->scn_phys.scn_queue_obj,
952 VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset,
954 err = zap_add_int_key(dp->dp_meta_objset,
959 VERIFY(0 == zap_add_int_key(dp->dp_meta_objset,
967 } else if (zap_lookup_int_key(dp->dp_meta_objset,
971 VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset,
973 VERIFY(0 == zap_add_int_key(dp->dp_meta_objset,
991 enqueue_clones_cb(dsl_pool_t *dp, dsl_dataset_t *hds, void *arg)
996 dsl_scan_t *scn = dp->dp_scan;
1001 err = dsl_dataset_hold_obj(dp, hds->ds_object, FTAG, &ds);
1007 err = dsl_dataset_hold_obj(dp,
1015 VERIFY(zap_add_int_key(dp->dp_meta_objset,
1025 dsl_pool_t *dp = scn->scn_dp;
1029 VERIFY3U(0, ==, dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds));
1082 dsl_scan_zil(dp, &os->os_zil_header);
1115 VERIFY(zap_add_int_key(dp->dp_meta_objset,
1125 VERIFY(zap_add_int_key(dp->dp_meta_objset,
1141 int err = zap_count(dp->dp_meta_objset,
1149 VERIFY0(zap_join_key(dp->dp_meta_objset,
1158 VERIFY0(dmu_objset_find_dp(dp, dp->dp_root_dir_obj,
1169 enqueue_cb(dsl_pool_t *dp, dsl_dataset_t *hds, void *arg)
1174 dsl_scan_t *scn = dp->dp_scan;
1176 err = dsl_dataset_hold_obj(dp, hds->ds_object, FTAG, &ds);
1182 err = dsl_dataset_hold_obj(dp,
1201 VERIFY(zap_add_int_key(dp->dp_meta_objset, scn->scn_phys.scn_queue_obj,
1306 dsl_pool_t *dp = scn->scn_dp;
1325 &dp->dp_meta_rootbp, tx);
1326 spa_set_rootblkptr(dp->dp_spa, &dp->dp_meta_rootbp);
1330 if (spa_version(dp->dp_spa) < SPA_VERSION_DSL_SCRUB) {
1331 VERIFY0(dmu_objset_find_dp(dp, dp->dp_root_dir_obj,
1335 dp->dp_origin_snap->ds_object, tx);
1358 while (zap_cursor_init(&zc, dp->dp_meta_objset,
1365 VERIFY3U(0, ==, zap_remove_int(dp->dp_meta_objset,
1369 VERIFY3U(0, ==, dsl_dataset_hold_obj(dp, dsobj, FTAG, &ds));
1450 dsl_scan_sync(dsl_pool_t *dp, dmu_tx_t *tx)
1452 dsl_scan_t *scn = dp->dp_scan;
1453 spa_t *spa = dp->dp_spa;
1474 if (spa_sync_pass(dp->dp_spa) > 1)
1504 spa_version(dp->dp_spa) >= SPA_VERSION_DEADLISTS) {
1506 scn->scn_zio_root = zio_root(dp->dp_spa, NULL,
1508 err = bpobj_iterate(&dp->dp_free_bpobj,
1519 scn->scn_zio_root = zio_root(dp->dp_spa, NULL,
1521 err = bptree_iterate(dp->dp_meta_objset,
1522 dp->dp_bptree_obj, B_TRUE, dsl_scan_free_block_cb, scn, tx);
1532 if (bptree_is_empty(dp->dp_meta_objset, dp->dp_bptree_obj)) {
1537 VERIFY0(zap_remove(dp->dp_meta_objset,
1540 VERIFY0(bptree_free(dp->dp_meta_objset,
1541 dp->dp_bptree_obj, tx));
1542 dp->dp_bptree_obj = 0;
1576 if (dp->dp_free_dir != NULL && !scn->scn_async_destroying &&
1578 (dsl_dir_phys(dp->dp_free_dir)->dd_used_bytes != 0 ||
1579 dsl_dir_phys(dp->dp_free_dir)->dd_compressed_bytes != 0 ||
1580 dsl_dir_phys(dp->dp_free_dir)->dd_uncompressed_bytes != 0)) {
1586 if (dp->dp_leak_dir == NULL) {
1587 rrw_enter(&dp->dp_config_rwlock, RW_WRITER, FTAG);
1588 (void) dsl_dir_create_sync(dp, dp->dp_root_dir,
1590 VERIFY0(dsl_pool_open_special_dir(dp,
1591 LEAK_DIR_NAME, &dp->dp_leak_dir));
1592 rrw_exit(&dp->dp_config_rwlock, FTAG);
1594 dsl_dir_diduse_space(dp->dp_leak_dir, DD_USED_HEAD,
1595 dsl_dir_phys(dp->dp_free_dir)->dd_used_bytes,
1596 dsl_dir_phys(dp->dp_free_dir)->dd_compressed_bytes,
1597 dsl_dir_phys(dp->dp_free_dir)->dd_uncompressed_bytes, tx);
1598 dsl_dir_diduse_space(dp->dp_free_dir, DD_USED_HEAD,
1599 -dsl_dir_phys(dp->dp_free_dir)->dd_used_bytes,
1600 -dsl_dir_phys(dp->dp_free_dir)->dd_compressed_bytes,
1601 -dsl_dir_phys(dp->dp_free_dir)->dd_uncompressed_bytes, tx);
1603 if (dp->dp_free_dir != NULL && !scn->scn_async_destroying) {
1605 ASSERT0(dsl_dir_phys(dp->dp_free_dir)->dd_used_bytes);
1606 ASSERT0(dsl_dir_phys(dp->dp_free_dir)->dd_compressed_bytes);
1607 ASSERT0(dsl_dir_phys(dp->dp_free_dir)->dd_uncompressed_bytes);
1645 scn->scn_zio_root = zio_root(dp->dp_spa, NULL,
1647 dsl_pool_config_enter(dp, FTAG);
1649 dsl_pool_config_exit(dp, FTAG);
1679 dsl_resilver_restart(dsl_pool_t *dp, uint64_t txg)
1683 tx = dmu_tx_create_dd(dp->dp_mos_dir);
1687 dp->dp_scan->scn_restart_txg = txg;
1690 dp->dp_scan->scn_restart_txg = txg;
1696 dsl_scan_resilvering(dsl_pool_t *dp)
1698 return (dp->dp_scan->scn_phys.scn_state == DSS_SCANNING &&
1699 dp->dp_scan->scn_phys.scn_func == POOL_SCAN_RESILVER);
1773 dsl_scan_scrub_cb(dsl_pool_t *dp,
1776 dsl_scan_t *scn = dp->dp_scan;
1778 spa_t *spa = dp->dp_spa;
1788 count_block(dp->dp_blkstats, bp);
1867 dsl_scan(dsl_pool_t *dp, pool_scan_func_t func)
1869 spa_t *spa = dp->dp_spa;