Lines Matching refs:scn_phys
232 ((scn)->scn_phys.scn_func == POOL_SCAN_SCRUB || \
233 (scn)->scn_phys.scn_func == POOL_SCAN_RESILVER)
236 ((scn)->scn_phys.scn_func == POOL_SCAN_SCRUB)
239 ((scn)->scn_phys.scn_func == POOL_SCAN_RESILVER)
427 return (scn->scn_phys.scn_state == DSS_SCANNING); in dsl_scan_is_running()
434 dp->dp_scan->scn_phys.scn_func == POOL_SCAN_RESILVER); in dsl_scan_resilvering()
528 &scn->scn_phys.scn_queue_obj); in dsl_scan_init()
539 &scn->scn_phys); in dsl_scan_init()
565 memcpy(&scn->scn_phys, zaptmp, in dsl_scan_init()
567 scn->scn_phys.scn_flags = overflow; in dsl_scan_init()
570 if (scn->scn_phys.scn_state == DSS_FINISHED || in dsl_scan_init()
571 scn->scn_phys.scn_state == DSS_CANCELED) in dsl_scan_init()
587 scn->scn_issued_before_pass = scn->scn_phys.scn_examined - in dsl_scan_init()
588 scn->scn_phys.scn_skipped; in dsl_scan_init()
611 if (scn->scn_phys.scn_errors > 0) { in dsl_scan_init()
625 memcpy(&scn->scn_phys_cached, &scn->scn_phys, sizeof (scn->scn_phys)); in dsl_scan_init()
628 if (scn->scn_phys.scn_queue_obj != 0) { in dsl_scan_init()
633 scn->scn_phys.scn_queue_obj); in dsl_scan_init()
644 ddt_walk_init(spa, scn->scn_phys.scn_max_txg); in dsl_scan_init()
689 dsl_scan_phys_t *scn_phys = &dp->dp_scan->scn_phys; in dsl_scan_scrubbing() local
691 return (scn_phys->scn_state == DSS_SCANNING && in dsl_scan_scrubbing()
692 scn_phys->scn_func == POOL_SCAN_SCRUB); in dsl_scan_scrubbing()
715 scn->scn_phys.scn_flags & DSF_SCRUB_PAUSED); in dsl_scan_is_paused_scrub()
826 if (scn->scn_phys.scn_queue_obj != 0) in dsl_scan_sync_state()
831 &scn->scn_phys, tx)); in dsl_scan_sync_state()
832 memcpy(&scn->scn_phys_cached, &scn->scn_phys, in dsl_scan_sync_state()
833 sizeof (scn->scn_phys)); in dsl_scan_sync_state()
875 memset(&scn->scn_phys, 0, sizeof (scn->scn_phys)); in dsl_scan_setup_sync()
884 scn->scn_phys.scn_func = setup_sync_arg->func; in dsl_scan_setup_sync()
885 scn->scn_phys.scn_state = DSS_SCANNING; in dsl_scan_setup_sync()
886 scn->scn_phys.scn_min_txg = setup_sync_arg->txgstart; in dsl_scan_setup_sync()
888 scn->scn_phys.scn_max_txg = tx->tx_txg; in dsl_scan_setup_sync()
890 scn->scn_phys.scn_max_txg = setup_sync_arg->txgend; in dsl_scan_setup_sync()
892 scn->scn_phys.scn_ddt_class_max = DDT_CLASSES - 1; /* the entire DDT */ in dsl_scan_setup_sync()
893 scn->scn_phys.scn_start_time = gethrestime_sec(); in dsl_scan_setup_sync()
894 scn->scn_phys.scn_errors = 0; in dsl_scan_setup_sync()
895 scn->scn_phys.scn_to_examine = spa->spa_root_vdev->vdev_stat.vs_alloc; in dsl_scan_setup_sync()
905 scn->scn_phys.scn_ddt_class_max = zfs_scrub_ddt_class_max; in dsl_scan_setup_sync()
911 &scn->scn_phys.scn_min_txg, &scn->scn_phys.scn_max_txg)) { in dsl_scan_setup_sync()
928 if (scn->scn_phys.scn_min_txg > TXG_INITIAL) in dsl_scan_setup_sync()
929 scn->scn_phys.scn_ddt_class_max = DDT_CLASS_DITTO; in dsl_scan_setup_sync()
938 if (scn->scn_phys.scn_func == POOL_SCAN_RESILVER) { in dsl_scan_setup_sync()
967 scn->scn_phys.scn_queue_obj = zap_create(dp->dp_meta_objset, in dsl_scan_setup_sync()
970 memcpy(&scn->scn_phys_cached, &scn->scn_phys, sizeof (scn->scn_phys)); in dsl_scan_setup_sync()
972 ddt_walk_init(spa, scn->scn_phys.scn_max_txg); in dsl_scan_setup_sync()
978 setup_sync_arg->func, (u_longlong_t)scn->scn_phys.scn_min_txg, in dsl_scan_setup_sync()
979 (u_longlong_t)scn->scn_phys.scn_max_txg); in dsl_scan_setup_sync()
1109 if (scn->scn_phys.scn_queue_obj != 0) { in dsl_scan_done()
1111 scn->scn_phys.scn_queue_obj, tx)); in dsl_scan_done()
1112 scn->scn_phys.scn_queue_obj = 0; in dsl_scan_done()
1117 scn->scn_phys.scn_flags &= ~DSF_SCRUB_PAUSED; in dsl_scan_done()
1152 &scn->scn_phys.scn_max_txg, tx)); in dsl_scan_done()
1153 spa->spa_scrubbed_last_txg = scn->scn_phys.scn_max_txg; in dsl_scan_done()
1173 scn->scn_phys.scn_max_txg, B_TRUE, B_FALSE); in dsl_scan_done()
1196 scn->scn_phys.scn_state = complete ? DSS_FINISHED : in dsl_scan_done()
1198 scn->scn_phys.scn_end_time = gethrestime_sec(); in dsl_scan_done()
1229 scn->scn_phys.scn_state = complete ? DSS_FINISHED : in dsl_scan_done()
1231 scn->scn_phys.scn_end_time = gethrestime_sec(); in dsl_scan_done()
1395 scn->scn_phys.scn_flags |= DSF_SCRUB_PAUSED; in dsl_scrub_pause_resume_sync()
1411 scn->scn_phys.scn_flags &= ~DSF_SCRUB_PAUSED; in dsl_scrub_pause_resume_sync()
1538 ASSERT(scn->scn_phys.scn_queue_obj != 0); in scan_ds_queue_sync()
1541 scn->scn_phys.scn_queue_obj, tx)); in scan_ds_queue_sync()
1542 scn->scn_phys.scn_queue_obj = zap_create(dp->dp_meta_objset, ot, in scan_ds_queue_sync()
1547 scn->scn_phys.scn_queue_obj, sds->sds_dsobj, in scan_ds_queue_sync()
1647 if (!ZB_IS_ZERO(&scn->scn_phys.scn_bookmark)) in dsl_scan_check_suspend()
1674 uint_t mintime = (scn->scn_phys.scn_func == POOL_SCAN_RESILVER) ? in dsl_scan_check_suspend()
1691 SET_BOOKMARK(&scn->scn_phys.scn_bookmark, in dsl_scan_check_suspend()
1699 scn->scn_phys.scn_bookmark = *zb; in dsl_scan_check_suspend()
1702 dsl_scan_phys_t *scnp = &scn->scn_phys; in dsl_scan_check_suspend()
1771 BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg) in dsl_scan_zil_block()
1787 VERIFY(0 == scan_funcs[scn->scn_phys.scn_func](dp, bp, &zb)); in dsl_scan_zil_block()
1807 BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg) in dsl_scan_zil_record()
1823 VERIFY(0 == scan_funcs[scn->scn_phys.scn_func](dp, bp, &zb)); in dsl_scan_zil_record()
1955 BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg || in dsl_scan_prefetch()
2166 if (!ZB_IS_ZERO(&scn->scn_phys.scn_bookmark) && in dsl_scan_check_resume()
2173 &scn->scn_phys.scn_bookmark)) in dsl_scan_check_resume()
2182 &scn->scn_phys.scn_bookmark)) { in dsl_scan_check_resume()
2188 memset(&scn->scn_phys.scn_bookmark, 0, sizeof (*zb)); in dsl_scan_check_resume()
2225 scn->scn_phys.scn_errors++; in dsl_scan_recurse()
2240 scn->scn_phys.scn_errors++; in dsl_scan_recurse()
2268 scn->scn_phys.scn_errors++; in dsl_scan_recurse()
2287 scn->scn_phys.scn_errors++; in dsl_scan_recurse()
2321 scn->scn_phys.scn_errors++; in dsl_scan_recurse()
2399 if (BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg) { in dsl_scan_visitbp()
2413 scn->scn_phys.scn_ddt_class_max, bp)) { in dsl_scan_visitbp()
2425 if (BP_GET_BIRTH(bp) > scn->scn_phys.scn_cur_max_txg) { in dsl_scan_visitbp()
2430 scan_funcs[scn->scn_phys.scn_func](dp, bp, zb); in dsl_scan_visitbp()
2443 if (ZB_IS_ZERO(&scn->scn_phys.scn_bookmark)) { in dsl_scan_visit_rootbp()
2447 scn->scn_prefetch_bookmark = scn->scn_phys.scn_bookmark; in dsl_scan_visit_rootbp()
2462 ds_destroyed_scn_phys(dsl_dataset_t *ds, dsl_scan_phys_t *scn_phys) in ds_destroyed_scn_phys() argument
2464 if (scn_phys->scn_bookmark.zb_objset == ds->ds_object) { in ds_destroyed_scn_phys()
2476 scn_phys->scn_bookmark.zb_objset = in ds_destroyed_scn_phys()
2484 scn_phys->scn_flags |= DSF_VISIT_DS_AGAIN; in ds_destroyed_scn_phys()
2486 SET_BOOKMARK(&scn_phys->scn_bookmark, in ds_destroyed_scn_phys()
2517 ds_destroyed_scn_phys(ds, &scn->scn_phys); in dsl_scan_ds_destroyed()
2527 if (zap_lookup_int_key(dp->dp_meta_objset, scn->scn_phys.scn_queue_obj, in dsl_scan_ds_destroyed()
2531 scn->scn_phys.scn_queue_obj, ds->ds_object, tx)); in dsl_scan_ds_destroyed()
2539 scn->scn_phys.scn_queue_obj, in dsl_scan_ds_destroyed()
2595 ds_snapshotted_bookmark(ds, &scn->scn_phys.scn_bookmark); in dsl_scan_ds_snapshotted()
2604 if (zap_lookup_int_key(dp->dp_meta_objset, scn->scn_phys.scn_queue_obj, in dsl_scan_ds_snapshotted()
2607 scn->scn_phys.scn_queue_obj, ds->ds_object, tx)); in dsl_scan_ds_snapshotted()
2609 scn->scn_phys.scn_queue_obj, in dsl_scan_ds_snapshotted()
2658 ds_clone_swapped_bookmark(ds1, ds2, &scn->scn_phys.scn_bookmark); in dsl_scan_ds_clone_swapped()
2701 scn->scn_phys.scn_queue_obj, ds1->ds_object, &mintxg1) == 0; in dsl_scan_ds_clone_swapped()
2703 scn->scn_phys.scn_queue_obj, ds2->ds_object, &mintxg2) == 0; in dsl_scan_ds_clone_swapped()
2724 scn->scn_phys.scn_queue_obj, ds1->ds_object, tx)); in dsl_scan_ds_clone_swapped()
2726 scn->scn_phys.scn_queue_obj, ds2->ds_object, mintxg1, tx)); in dsl_scan_ds_clone_swapped()
2734 scn->scn_phys.scn_queue_obj, ds2->ds_object, tx)); in dsl_scan_ds_clone_swapped()
2736 scn->scn_phys.scn_queue_obj, ds1->ds_object, mintxg2, tx)); in dsl_scan_ds_clone_swapped()
2788 if (scn->scn_phys.scn_cur_min_txg >= in dsl_scan_visitds()
2789 scn->scn_phys.scn_max_txg) { in dsl_scan_visitds()
2821 (longlong_t)scn->scn_phys.scn_cur_min_txg, in dsl_scan_visitds()
2822 (longlong_t)scn->scn_phys.scn_max_txg); in dsl_scan_visitds()
2860 (longlong_t)scn->scn_phys.scn_cur_min_txg, in dsl_scan_visitds()
2861 (longlong_t)scn->scn_phys.scn_cur_max_txg, in dsl_scan_visitds()
2875 if (scn->scn_phys.scn_flags & DSF_VISIT_DS_AGAIN) { in dsl_scan_visitds()
2878 scn->scn_phys.scn_flags &= ~DSF_VISIT_DS_AGAIN; in dsl_scan_visitds()
2880 scn->scn_phys.scn_cur_max_txg); in dsl_scan_visitds()
3005 if (phys_birth == 0 || phys_birth > scn->scn_phys.scn_max_txg) in dsl_scan_ddt_entry()
3010 scan_funcs[scn->scn_phys.scn_func](scn->scn_dp, &bp, &zb); in dsl_scan_ddt_entry()
3050 ddt_bookmark_t *ddb = &scn->scn_phys.scn_ddt_bookmark; in dsl_scan_ddt()
3058 if (ddb->ddb_class > scn->scn_phys.scn_ddt_class_max) in dsl_scan_ddt()
3084 (int)scn->scn_phys.scn_ddt_class_max, in dsl_scan_ddt()
3090 (int)scn->scn_phys.scn_ddt_class_max, in dsl_scan_ddt()
3095 ddb->ddb_class > scn->scn_phys.scn_ddt_class_max); in dsl_scan_ddt()
3101 uint64_t smt = ds->ds_dir->dd_pool->dp_scan->scn_phys.scn_max_txg; in dsl_scan_ds_maxtxg()
3113 if (scn->scn_phys.scn_ddt_bookmark.ddb_class <= in dsl_scan_visit()
3114 scn->scn_phys.scn_ddt_class_max) { in dsl_scan_visit()
3115 scn->scn_phys.scn_cur_min_txg = scn->scn_phys.scn_min_txg; in dsl_scan_visit()
3116 scn->scn_phys.scn_cur_max_txg = scn->scn_phys.scn_max_txg; in dsl_scan_visit()
3122 if (scn->scn_phys.scn_bookmark.zb_objset == DMU_META_OBJSET) { in dsl_scan_visit()
3125 scn->scn_phys.scn_cur_min_txg = scn->scn_phys.scn_min_txg; in dsl_scan_visit()
3126 scn->scn_phys.scn_cur_max_txg = scn->scn_phys.scn_max_txg; in dsl_scan_visit()
3140 } else if (scn->scn_phys.scn_bookmark.zb_objset != in dsl_scan_visit()
3142 uint64_t dsobj = scn->scn_phys.scn_bookmark.zb_objset; in dsl_scan_visit()
3158 memset(&scn->scn_phys.scn_bookmark, 0, sizeof (zbookmark_phys_t)); in dsl_scan_visit()
3176 scn->scn_phys.scn_cur_min_txg = in dsl_scan_visit()
3177 MAX(scn->scn_phys.scn_min_txg, txg); in dsl_scan_visit()
3179 scn->scn_phys.scn_cur_min_txg = in dsl_scan_visit()
3180 MAX(scn->scn_phys.scn_min_txg, in dsl_scan_visit()
3183 scn->scn_phys.scn_cur_max_txg = dsl_scan_ds_maxtxg(ds); in dsl_scan_visit()
3192 scn->scn_phys.scn_bookmark.zb_objset = ZB_DESTROYED_OBJSET; in dsl_scan_visit()
3243 uint_t mintime = (scn->scn_phys.scn_func == POOL_SCAN_RESILVER) ? in scan_io_queue_check_suspend()
4346 scn->scn_phys.scn_to_examine - scn->scn_phys.scn_skipped; in dsl_scan_sync()
4443 uint_t mintime = (scn->scn_phys.scn_func == in dsl_scan_sync()
4522 dsl_scan_phys_t *scnp = &scn->scn_phys; in dsl_scan_sync()
4668 atomic_add_64(&scn->scn_phys.scn_skipped, in count_block_skipped()
4815 if (phys_birth <= scn->scn_phys.scn_min_txg || in dsl_scan_scrub_cb()
4816 phys_birth >= scn->scn_phys.scn_max_txg) { in dsl_scan_scrub_cb()
4825 if (scn->scn_phys.scn_func == POOL_SCAN_SCRUB) { in dsl_scan_scrub_cb()
4829 ASSERT3U(scn->scn_phys.scn_func, ==, POOL_SCAN_RESILVER); in dsl_scan_scrub_cb()
4846 scn->scn_phys.scn_examined += asize; in dsl_scan_scrub_cb()
4895 atomic_inc_64(&spa->spa_dsl_pool->dp_scan->scn_phys in dsl_scan_scrub_done()
5279 if (max <= dp->dp_scan->scn_phys.scn_max_txg) in dsl_scan_assess_vdev()