Lines Matching defs:scn_phys

231 	((scn)->scn_phys.scn_func == POOL_SCAN_SCRUB || \
232 (scn)->scn_phys.scn_func == POOL_SCAN_RESILVER)
235 ((scn)->scn_phys.scn_func == POOL_SCAN_SCRUB)
261 * SYNC_OPTIONAL) write out scn_phys iff scn_queues_pending == 0
262 * SYNC_MANDATORY) write out scn_phys always. scn_queues_pending must be 0.
263 * SYNC_CACHED) if scn_queues_pending == 0, write out scn_phys. Otherwise
423 return (scn->scn_phys.scn_state == DSS_SCANNING);
430 dp->dp_scan->scn_phys.scn_func == POOL_SCAN_RESILVER);
524 &scn->scn_phys.scn_queue_obj);
535 &scn->scn_phys);
539 * does properly update the scn->scn_phys structure and notify
561 memcpy(&scn->scn_phys, zaptmp,
563 scn->scn_phys.scn_flags = overflow;
566 if (scn->scn_phys.scn_state == DSS_FINISHED ||
567 scn->scn_phys.scn_state == DSS_CANCELED)
583 scn->scn_issued_before_pass = scn->scn_phys.scn_examined -
584 scn->scn_phys.scn_skipped;
607 if (scn->scn_phys.scn_errors > 0) {
621 memcpy(&scn->scn_phys_cached, &scn->scn_phys, sizeof (scn->scn_phys));
624 if (scn->scn_phys.scn_queue_obj != 0) {
629 scn->scn_phys.scn_queue_obj);
640 ddt_walk_init(spa, scn->scn_phys.scn_max_txg);
685 dsl_scan_phys_t *scn_phys = &dp->dp_scan->scn_phys;
687 return (scn_phys->scn_state == DSS_SCANNING &&
688 scn_phys->scn_func == POOL_SCAN_SCRUB);
711 scn->scn_phys.scn_flags & DSF_SCRUB_PAUSED);
821 if (scn->scn_phys.scn_queue_obj != 0)
826 &scn->scn_phys, tx));
827 memcpy(&scn->scn_phys_cached, &scn->scn_phys,
828 sizeof (scn->scn_phys));
870 memset(&scn->scn_phys, 0, sizeof (scn->scn_phys));
879 scn->scn_phys.scn_func = setup_sync_arg->func;
880 scn->scn_phys.scn_state = DSS_SCANNING;
881 scn->scn_phys.scn_min_txg = setup_sync_arg->txgstart;
883 scn->scn_phys.scn_max_txg = tx->tx_txg;
885 scn->scn_phys.scn_max_txg = setup_sync_arg->txgend;
887 scn->scn_phys.scn_ddt_class_max = DDT_CLASSES - 1; /* the entire DDT */
888 scn->scn_phys.scn_start_time = gethrestime_sec();
889 scn->scn_phys.scn_errors = 0;
890 scn->scn_phys.scn_to_examine = spa->spa_root_vdev->vdev_stat.vs_alloc;
900 scn->scn_phys.scn_ddt_class_max = zfs_scrub_ddt_class_max;
906 &scn->scn_phys.scn_min_txg, &scn->scn_phys.scn_max_txg)) {
923 if (scn->scn_phys.scn_min_txg > TXG_INITIAL)
924 scn->scn_phys.scn_ddt_class_max = DDT_CLASS_DITTO;
933 if (scn->scn_phys.scn_func == POOL_SCAN_RESILVER) {
962 scn->scn_phys.scn_queue_obj = zap_create(dp->dp_meta_objset,
965 memcpy(&scn->scn_phys_cached, &scn->scn_phys, sizeof (scn->scn_phys));
967 ddt_walk_init(spa, scn->scn_phys.scn_max_txg);
973 setup_sync_arg->func, (u_longlong_t)scn->scn_phys.scn_min_txg,
974 (u_longlong_t)scn->scn_phys.scn_max_txg);
1104 if (scn->scn_phys.scn_queue_obj != 0) {
1106 scn->scn_phys.scn_queue_obj, tx));
1107 scn->scn_phys.scn_queue_obj = 0;
1112 scn->scn_phys.scn_flags &= ~DSF_SCRUB_PAUSED;
1133 scn->scn_phys.scn_state = complete ? DSS_FINISHED : DSS_CANCELED;
1151 &scn->scn_phys.scn_max_txg, tx));
1152 spa->spa_scrubbed_last_txg = scn->scn_phys.scn_max_txg;
1172 scn->scn_phys.scn_max_txg, B_TRUE, B_FALSE);
1174 if (scn->scn_phys.scn_min_txg) {
1226 scn->scn_phys.scn_end_time = gethrestime_sec();
1387 scn->scn_phys.scn_flags |= DSF_SCRUB_PAUSED;
1403 scn->scn_phys.scn_flags &= ~DSF_SCRUB_PAUSED;
1530 ASSERT(scn->scn_phys.scn_queue_obj != 0);
1533 scn->scn_phys.scn_queue_obj, tx));
1534 scn->scn_phys.scn_queue_obj = zap_create(dp->dp_meta_objset, ot,
1539 scn->scn_phys.scn_queue_obj, sds->sds_dsobj,
1639 if (!ZB_IS_ZERO(&scn->scn_phys.scn_bookmark))
1666 uint_t mintime = (scn->scn_phys.scn_func == POOL_SCAN_RESILVER) ?
1683 SET_BOOKMARK(&scn->scn_phys.scn_bookmark,
1691 scn->scn_phys.scn_bookmark = *zb;
1694 dsl_scan_phys_t *scnp = &scn->scn_phys;
1763 BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg)
1779 VERIFY(0 == scan_funcs[scn->scn_phys.scn_func](dp, bp, &zb));
1799 BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg)
1815 VERIFY(0 == scan_funcs[scn->scn_phys.scn_func](dp, bp, &zb));
1947 BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg ||
2158 if (!ZB_IS_ZERO(&scn->scn_phys.scn_bookmark) &&
2165 &scn->scn_phys.scn_bookmark))
2174 &scn->scn_phys.scn_bookmark)) {
2180 memset(&scn->scn_phys.scn_bookmark, 0, sizeof (*zb));
2217 scn->scn_phys.scn_errors++;
2232 scn->scn_phys.scn_errors++;
2260 scn->scn_phys.scn_errors++;
2279 scn->scn_phys.scn_errors++;
2313 scn->scn_phys.scn_errors++;
2391 if (BP_GET_LOGICAL_BIRTH(bp) <= scn->scn_phys.scn_cur_min_txg) {
2405 scn->scn_phys.scn_ddt_class_max, bp)) {
2417 if (BP_GET_BIRTH(bp) > scn->scn_phys.scn_cur_max_txg) {
2422 scan_funcs[scn->scn_phys.scn_func](dp, bp, zb);
2435 if (ZB_IS_ZERO(&scn->scn_phys.scn_bookmark)) {
2439 scn->scn_prefetch_bookmark = scn->scn_phys.scn_bookmark;
2454 ds_destroyed_scn_phys(dsl_dataset_t *ds, dsl_scan_phys_t *scn_phys)
2456 if (scn_phys->scn_bookmark.zb_objset == ds->ds_object) {
2468 scn_phys->scn_bookmark.zb_objset =
2476 scn_phys->scn_flags |= DSF_VISIT_DS_AGAIN;
2478 SET_BOOKMARK(&scn_phys->scn_bookmark,
2509 ds_destroyed_scn_phys(ds, &scn->scn_phys);
2519 if (zap_lookup_int_key(dp->dp_meta_objset, scn->scn_phys.scn_queue_obj,
2523 scn->scn_phys.scn_queue_obj, ds->ds_object, tx));
2531 scn->scn_phys.scn_queue_obj,
2587 ds_snapshotted_bookmark(ds, &scn->scn_phys.scn_bookmark);
2596 if (zap_lookup_int_key(dp->dp_meta_objset, scn->scn_phys.scn_queue_obj,
2599 scn->scn_phys.scn_queue_obj, ds->ds_object, tx));
2601 scn->scn_phys.scn_queue_obj,
2650 ds_clone_swapped_bookmark(ds1, ds2, &scn->scn_phys.scn_bookmark);
2693 scn->scn_phys.scn_queue_obj, ds1->ds_object, &mintxg1) == 0;
2695 scn->scn_phys.scn_queue_obj, ds2->ds_object, &mintxg2) == 0;
2716 scn->scn_phys.scn_queue_obj, ds1->ds_object, tx));
2718 scn->scn_phys.scn_queue_obj, ds2->ds_object, mintxg1, tx));
2726 scn->scn_phys.scn_queue_obj, ds2->ds_object, tx));
2728 scn->scn_phys.scn_queue_obj, ds1->ds_object, mintxg2, tx));
2780 if (scn->scn_phys.scn_cur_min_txg >=
2781 scn->scn_phys.scn_max_txg) {
2813 (longlong_t)scn->scn_phys.scn_cur_min_txg,
2814 (longlong_t)scn->scn_phys.scn_max_txg);
2852 (longlong_t)scn->scn_phys.scn_cur_min_txg,
2853 (longlong_t)scn->scn_phys.scn_cur_max_txg,
2867 if (scn->scn_phys.scn_flags & DSF_VISIT_DS_AGAIN) {
2870 scn->scn_phys.scn_flags &= ~DSF_VISIT_DS_AGAIN;
2872 scn->scn_phys.scn_cur_max_txg);
2997 if (phys_birth == 0 || phys_birth > scn->scn_phys.scn_max_txg)
3002 scan_funcs[scn->scn_phys.scn_func](scn->scn_dp, &bp, &zb);
3042 ddt_bookmark_t *ddb = &scn->scn_phys.scn_ddt_bookmark;
3050 if (ddb->ddb_class > scn->scn_phys.scn_ddt_class_max)
3076 (int)scn->scn_phys.scn_ddt_class_max,
3082 (int)scn->scn_phys.scn_ddt_class_max,
3087 ddb->ddb_class > scn->scn_phys.scn_ddt_class_max);
3093 uint64_t smt = ds->ds_dir->dd_pool->dp_scan->scn_phys.scn_max_txg;
3105 if (scn->scn_phys.scn_ddt_bookmark.ddb_class <=
3106 scn->scn_phys.scn_ddt_class_max) {
3107 scn->scn_phys.scn_cur_min_txg = scn->scn_phys.scn_min_txg;
3108 scn->scn_phys.scn_cur_max_txg = scn->scn_phys.scn_max_txg;
3114 if (scn->scn_phys.scn_bookmark.zb_objset == DMU_META_OBJSET) {
3117 scn->scn_phys.scn_cur_min_txg = scn->scn_phys.scn_min_txg;
3118 scn->scn_phys.scn_cur_max_txg = scn->scn_phys.scn_max_txg;
3132 } else if (scn->scn_phys.scn_bookmark.zb_objset !=
3134 uint64_t dsobj = scn->scn_phys.scn_bookmark.zb_objset;
3150 memset(&scn->scn_phys.scn_bookmark, 0, sizeof (zbookmark_phys_t));
3168 scn->scn_phys.scn_cur_min_txg =
3169 MAX(scn->scn_phys.scn_min_txg, txg);
3171 scn->scn_phys.scn_cur_min_txg =
3172 MAX(scn->scn_phys.scn_min_txg,
3175 scn->scn_phys.scn_cur_max_txg = dsl_scan_ds_maxtxg(ds);
3184 scn->scn_phys.scn_bookmark.zb_objset = ZB_DESTROYED_OBJSET;
3235 uint_t mintime = (scn->scn_phys.scn_func == POOL_SCAN_RESILVER) ?
4336 scn->scn_phys.scn_to_examine - scn->scn_phys.scn_skipped;
4433 uint_t mintime = (scn->scn_phys.scn_func ==
4512 dsl_scan_phys_t *scnp = &scn->scn_phys;
4658 atomic_add_64(&scn->scn_phys.scn_skipped,
4805 if (phys_birth <= scn->scn_phys.scn_min_txg ||
4806 phys_birth >= scn->scn_phys.scn_max_txg) {
4815 if (scn->scn_phys.scn_func == POOL_SCAN_SCRUB) {
4819 ASSERT3U(scn->scn_phys.scn_func, ==, POOL_SCAN_RESILVER);
4836 scn->scn_phys.scn_examined += asize;
4885 atomic_inc_64(&spa->spa_dsl_pool->dp_scan->scn_phys
5267 if (max <= dp->dp_scan->scn_phys.scn_max_txg)