Lines Matching refs:vd

172 vdev_activate(vdev_t *vd)  in vdev_activate()  argument
174 metaslab_group_t *mg = vd->vdev_mg; in vdev_activate()
176 ASSERT(!vd->vdev_islog); in vdev_activate()
177 ASSERT(vd->vdev_noalloc); in vdev_activate()
180 metaslab_group_activate(vd->vdev_log_mg); in vdev_activate()
182 vdev_update_nonallocating_space(vd, B_FALSE); in vdev_activate()
184 vd->vdev_noalloc = B_FALSE; in vdev_activate()
188 vdev_passivate(vdev_t *vd, uint64_t *txg) in vdev_passivate() argument
190 spa_t *spa = vd->vdev_spa; in vdev_passivate()
193 ASSERT(!vd->vdev_noalloc); in vdev_passivate()
196 metaslab_group_t *mg = vd->vdev_mg; in vdev_passivate()
208 if (cvd == vd || !vdev_is_concrete(cvd) || in vdev_passivate()
226 ASSERT(!vd->vdev_islog); in vdev_passivate()
227 metaslab_group_passivate(vd->vdev_log_mg); in vdev_passivate()
248 ASSERT(!vd->vdev_islog); in vdev_passivate()
249 if (vd->vdev_log_mg != NULL) in vdev_passivate()
250 metaslab_group_activate(vd->vdev_log_mg); in vdev_passivate()
254 vdev_update_nonallocating_space(vd, B_TRUE); in vdev_passivate()
255 vd->vdev_noalloc = B_TRUE; in vdev_passivate()
272 vdev_t *vd; in spa_vdev_noalloc() local
283 vd = spa_lookup_by_guid(spa, guid, B_FALSE); in spa_vdev_noalloc()
285 if (vd == NULL) in spa_vdev_noalloc()
287 else if (vd->vdev_mg == NULL) in spa_vdev_noalloc()
289 else if (!vd->vdev_noalloc) in spa_vdev_noalloc()
290 error = vdev_passivate(vd, &txg); in spa_vdev_noalloc()
293 vdev_dirty_leaves(vd, VDD_DTL, txg); in spa_vdev_noalloc()
294 vdev_config_dirty(vd); in spa_vdev_noalloc()
305 vdev_t *vd; in spa_vdev_alloc() local
316 vd = spa_lookup_by_guid(spa, guid, B_FALSE); in spa_vdev_alloc()
318 if (vd == NULL) in spa_vdev_alloc()
320 else if (vd->vdev_mg == NULL) in spa_vdev_alloc()
322 else if (!vd->vdev_removing) in spa_vdev_alloc()
323 vdev_activate(vd); in spa_vdev_alloc()
326 vdev_dirty_leaves(vd, VDD_DTL, txg); in spa_vdev_alloc()
327 vdev_config_dirty(vd); in spa_vdev_alloc()
362 spa_vdev_removal_create(vdev_t *vd) in spa_vdev_removal_create() argument
369 ZFS_RT_F_DYN_NAME, vdev_rt_name(vd, "svr_allocd_segs")); in spa_vdev_removal_create()
370 svr->svr_vdev_id = vd->vdev_id; in spa_vdev_removal_create()
375 ZFS_RT_F_DYN_NAME, vdev_rt_name(vd, "svr_frees")); in spa_vdev_removal_create()
416 vdev_t *vd = vdev_lookup_top(spa, vdev_id); in vdev_remove_initiate_sync() local
417 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in vdev_remove_initiate_sync()
422 ASSERT0(vdev_get_nparity(vd)); in vdev_remove_initiate_sync()
423 svr = spa_vdev_removal_create(vd); in vdev_remove_initiate_sync()
425 ASSERT(vd->vdev_removing); in vdev_remove_initiate_sync()
426 ASSERT0P(vd->vdev_indirect_mapping); in vdev_remove_initiate_sync()
437 VERIFY0(zap_add(spa->spa_meta_objset, vd->vdev_top_zap, in vdev_remove_initiate_sync()
441 ASSERT0(vdev_obsolete_counts_are_precise(vd, &are_precise)); in vdev_remove_initiate_sync()
446 vd->vdev_indirect_mapping = in vdev_remove_initiate_sync()
449 vd->vdev_indirect_births = in vdev_remove_initiate_sync()
451 spa->spa_removing_phys.sr_removing_vdev = vd->vdev_id; in vdev_remove_initiate_sync()
463 for (uint64_t i = 0; i < vd->vdev_ms_count; i++) { in vdev_remove_initiate_sync()
464 metaslab_t *ms = vd->vdev_ms[i]; in vdev_remove_initiate_sync()
487 ASSERT3P(txg_list_head(&vd->vdev_ms_list, TXG_CLEAN(txg)), ==, NULL); in vdev_remove_initiate_sync()
514 vdev_config_dirty(vd); in vdev_remove_initiate_sync()
517 "im_obj=%llu", (u_longlong_t)vd->vdev_id, vd, in vdev_remove_initiate_sync()
522 "%s vdev %llu %s", spa_name(spa), (u_longlong_t)vd->vdev_id, in vdev_remove_initiate_sync()
523 (vd->vdev_path != NULL) ? vd->vdev_path : "-"); in vdev_remove_initiate_sync()
575 vdev_t *vd = vdev_lookup_top(spa, in spa_remove_init() local
578 if (vd == NULL) { in spa_remove_init()
583 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in spa_remove_init()
585 ASSERT(vdev_is_concrete(vd)); in spa_remove_init()
586 spa_vdev_removal_t *svr = spa_vdev_removal_create(vd); in spa_remove_init()
587 ASSERT3U(svr->svr_vdev_id, ==, vd->vdev_id); in spa_remove_init()
588 ASSERT(vd->vdev_removing); in spa_remove_init()
590 vd->vdev_indirect_mapping = vdev_indirect_mapping_open( in spa_remove_init()
592 vd->vdev_indirect_births = vdev_indirect_births_open( in spa_remove_init()
603 vdev_t *vd = vdev_lookup_top(spa, indirect_vdev_id); in spa_remove_init() local
604 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in spa_remove_init()
606 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_remove_init()
607 vd->vdev_indirect_mapping = vdev_indirect_mapping_open( in spa_remove_init()
609 vd->vdev_indirect_births = vdev_indirect_births_open( in spa_remove_init()
659 free_from_removing_vdev(vdev_t *vd, uint64_t offset, uint64_t size) in free_from_removing_vdev() argument
661 spa_t *spa = vd->vdev_spa; in free_from_removing_vdev()
663 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in free_from_removing_vdev()
667 ASSERT(vd->vdev_indirect_config.vic_mapping_object != 0); in free_from_removing_vdev()
668 ASSERT3U(vd->vdev_indirect_config.vic_mapping_object, ==, in free_from_removing_vdev()
670 ASSERT3U(vd->vdev_id, ==, svr->svr_vdev_id); in free_from_removing_vdev()
691 metaslab_free_concrete(vd, offset, size, B_FALSE); in free_from_removing_vdev()
824 vdev_indirect_mark_obsolete(vd, synced_offset, synced_size); in free_from_removing_vdev()
833 vdev_indirect_ops.vdev_op_remap(vd, synced_offset, synced_size, in free_from_removing_vdev()
854 vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id); in spa_finish_removal() local
855 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in spa_finish_removal()
865 srp->sr_prev_indirect_vdev = vd->vdev_id; in spa_finish_removal()
882 vdev_t *vd = arg; in free_mapped_segment_cb() local
883 vdev_indirect_mark_obsolete(vd, offset, size); in free_mapped_segment_cb()
885 vdev_indirect_ops.vdev_op_remap(vd, offset, size, in free_mapped_segment_cb()
899 vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id); in vdev_mapping_sync() local
900 vdev_indirect_config_t *vic __maybe_unused = &vd->vdev_indirect_config; in vdev_mapping_sync()
902 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in vdev_mapping_sync()
909 vdev_indirect_births_add_entry(vd->vdev_indirect_births, in vdev_mapping_sync()
918 free_mapped_segment_cb, vd); in vdev_mapping_sync()
1121 spa_vdev_copy_segment(vdev_t *vd, zfs_range_tree_t *segs, in spa_vdev_copy_segment() argument
1125 metaslab_group_t *mg = vd->vdev_mg; in spa_vdev_copy_segment()
1126 spa_t *spa = vd->vdev_spa; in spa_vdev_copy_segment()
1186 ZFS_RT_F_DYN_NAME, vdev_rt_name(vd, "obsolete_segs")); in spa_vdev_copy_segment()
1239 spa_vdev_copy_one_child(vca, nzio, vd, start, in spa_vdev_copy_segment()
1243 spa_vdev_copy_one_child(vca, nzio, vd, start, in spa_vdev_copy_segment()
1249 ASSERT3U(start + size, <=, vd->vdev_ms_count << vd->vdev_ms_shift); in spa_vdev_copy_segment()
1250 vdev_dirty(vd, 0, NULL, txg); in spa_vdev_copy_segment()
1265 vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id); in vdev_remove_complete_sync() local
1267 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in vdev_remove_complete_sync()
1276 vdev_destroy_spacemaps(vd, tx); in vdev_remove_complete_sync()
1283 vdev_destroy_unlink_zap(vd, fnvpair_value_uint64(pair), tx); in vdev_remove_complete_sync()
1290 "%s vdev %llu", spa_name(spa), (u_longlong_t)vd->vdev_id); in vdev_remove_complete_sync()
1294 vdev_remove_enlist_zaps(vdev_t *vd, nvlist_t *zlist) in vdev_remove_enlist_zaps() argument
1297 ASSERT0(vdev_get_nparity(vd)); in vdev_remove_enlist_zaps()
1299 if (vd->vdev_leaf_zap != 0) { in vdev_remove_enlist_zaps()
1302 VDEV_REMOVAL_ZAP_OBJS, (u_longlong_t)vd->vdev_leaf_zap); in vdev_remove_enlist_zaps()
1303 fnvlist_add_uint64(zlist, zkey, vd->vdev_leaf_zap); in vdev_remove_enlist_zaps()
1306 for (uint64_t id = 0; id < vd->vdev_children; id++) { in vdev_remove_enlist_zaps()
1307 vdev_remove_enlist_zaps(vd->vdev_child[id], zlist); in vdev_remove_enlist_zaps()
1312 vdev_remove_replace_with_indirect(vdev_t *vd, uint64_t txg) in vdev_remove_replace_with_indirect() argument
1316 spa_t *spa = vd->vdev_spa; in vdev_remove_replace_with_indirect()
1325 vdev_remove_enlist_zaps(vd, svr->svr_zaplist); in vdev_remove_replace_with_indirect()
1327 ivd = vdev_add_parent(vd, &vdev_indirect_ops); in vdev_remove_replace_with_indirect()
1330 vd->vdev_leaf_zap = 0; in vdev_remove_replace_with_indirect()
1332 vdev_remove_child(ivd, vd); in vdev_remove_replace_with_indirect()
1335 ASSERT(!list_link_active(&vd->vdev_state_dirty_node)); in vdev_remove_replace_with_indirect()
1364 vdev_t *vd = vdev_lookup_top(spa, spa->spa_vdev_removal->svr_vdev_id); in vdev_remove_complete() local
1365 ASSERT0P(vd->vdev_initialize_thread); in vdev_remove_complete()
1366 ASSERT0P(vd->vdev_trim_thread); in vdev_remove_complete()
1367 ASSERT0P(vd->vdev_autotrim_thread); in vdev_remove_complete()
1368 vdev_rebuild_stop_wait(vd); in vdev_remove_complete()
1369 ASSERT0P(vd->vdev_rebuild_thread); in vdev_remove_complete()
1371 sysevent_t *ev = spa_event_create(spa, vd, NULL, in vdev_remove_complete()
1375 (u_longlong_t)vd->vdev_id, (u_longlong_t)txg); in vdev_remove_complete()
1378 vdev_update_nonallocating_space(vd, B_FALSE); in vdev_remove_complete()
1383 if (vd->vdev_mg != NULL) { in vdev_remove_complete()
1384 vdev_metaslab_fini(vd); in vdev_remove_complete()
1385 metaslab_group_destroy(vd->vdev_mg); in vdev_remove_complete()
1386 vd->vdev_mg = NULL; in vdev_remove_complete()
1388 if (vd->vdev_log_mg != NULL) { in vdev_remove_complete()
1389 ASSERT0(vd->vdev_ms_count); in vdev_remove_complete()
1390 metaslab_group_destroy(vd->vdev_log_mg); in vdev_remove_complete()
1391 vd->vdev_log_mg = NULL; in vdev_remove_complete()
1393 ASSERT0(vd->vdev_stat.vs_space); in vdev_remove_complete()
1394 ASSERT0(vd->vdev_stat.vs_dspace); in vdev_remove_complete()
1396 vdev_remove_replace_with_indirect(vd, txg); in vdev_remove_complete()
1412 ASSERT0(vd->vdev_top_zap); in vdev_remove_complete()
1417 ASSERT0(vd->vdev_leaf_zap); in vdev_remove_complete()
1420 (void) vdev_label_init(vd, 0, VDEV_LABEL_REMOVE); in vdev_remove_complete()
1425 (void) spa_vdev_exit(spa, vd, txg, 0); in vdev_remove_complete()
1439 spa_vdev_copy_impl(vdev_t *vd, spa_vdev_removal_t *svr, vdev_copy_arg_t *vca, in spa_vdev_copy_impl() argument
1456 ZFS_RT_F_DYN_NAME, vdev_rt_name(vd, "spa_vdev_copy_impl:segs")); in spa_vdev_copy_impl()
1522 int error = spa_vdev_copy_segment(vd, in spa_vdev_copy_impl()
1601 vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id); in spa_vdev_remove_thread() local
1602 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in spa_vdev_remove_thread()
1605 ASSERT3P(vd->vdev_ops, !=, &vdev_indirect_ops); in spa_vdev_remove_thread()
1606 ASSERT(vdev_is_concrete(vd)); in spa_vdev_remove_thread()
1607 ASSERT(vd->vdev_removing); in spa_vdev_remove_thread()
1608 ASSERT(vd->vdev_indirect_config.vic_mapping_object != 0); in spa_vdev_remove_thread()
1619 ZFS_RT_F_DYN_NAME, vdev_rt_name(vd, "spa_vdev_remove_thread:segs")); in spa_vdev_remove_thread()
1628 for (msi = start_offset >> vd->vdev_ms_shift; in spa_vdev_remove_thread()
1629 msi < vd->vdev_ms_count && !svr->svr_thread_exit; msi++) { in spa_vdev_remove_thread()
1630 metaslab_t *msp = vd->vdev_ms[msi]; in spa_vdev_remove_thread()
1631 ASSERT3U(msi, <=, vd->vdev_ms_count); in spa_vdev_remove_thread()
1742 vd = vdev_lookup_top(spa, svr->svr_vdev_id); in spa_vdev_remove_thread()
1748 spa_vdev_copy_impl(vd, svr, &vca, &max_alloc, tx); in spa_vdev_remove_thread()
1827 vdev_prop_allocating_off(vdev_t *vd) in vdev_prop_allocating_off() argument
1829 uint64_t objid = vd->vdev_top_zap; in vdev_prop_allocating_off()
1834 spa_t *spa = vd->vdev_spa; in vdev_prop_allocating_off()
1866 vdev_t *vd = vdev_lookup_top(spa, svr->svr_vdev_id); in spa_vdev_remove_cancel_sync() local
1867 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in spa_vdev_remove_cancel_sync()
1868 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in spa_vdev_remove_cancel_sync()
1876 VERIFY0(vdev_obsolete_counts_are_precise(vd, &are_precise)); in spa_vdev_remove_cancel_sync()
1879 VERIFY0(zap_remove(spa->spa_meta_objset, vd->vdev_top_zap, in spa_vdev_remove_cancel_sync()
1884 VERIFY0(vdev_obsolete_sm_object(vd, &obsolete_sm_object)); in spa_vdev_remove_cancel_sync()
1886 ASSERT(vd->vdev_obsolete_sm != NULL); in spa_vdev_remove_cancel_sync()
1888 space_map_object(vd->vdev_obsolete_sm)); in spa_vdev_remove_cancel_sync()
1890 space_map_free(vd->vdev_obsolete_sm, tx); in spa_vdev_remove_cancel_sync()
1891 VERIFY0(zap_remove(spa->spa_meta_objset, vd->vdev_top_zap, in spa_vdev_remove_cancel_sync()
1893 space_map_close(vd->vdev_obsolete_sm); in spa_vdev_remove_cancel_sync()
1894 vd->vdev_obsolete_sm = NULL; in spa_vdev_remove_cancel_sync()
1905 vdev_rt_name(vd, "spa_vdev_remove_cancel_sync:segs")); in spa_vdev_remove_cancel_sync()
1906 for (uint64_t msi = 0; msi < vd->vdev_ms_count; msi++) { in spa_vdev_remove_cancel_sync()
1907 metaslab_t *msp = vd->vdev_ms[msi]; in spa_vdev_remove_cancel_sync()
1945 zfs_range_tree_vacate(segs, free_mapped_segment_cb, vd); in spa_vdev_remove_cancel_sync()
1953 zfs_range_tree_vacate(vd->vdev_obsolete_segments, NULL, NULL); in spa_vdev_remove_cancel_sync()
1956 vdev_indirect_mapping_object(vd->vdev_indirect_mapping)); in spa_vdev_remove_cancel_sync()
1957 vdev_indirect_mapping_close(vd->vdev_indirect_mapping); in spa_vdev_remove_cancel_sync()
1958 vd->vdev_indirect_mapping = NULL; in spa_vdev_remove_cancel_sync()
1963 vdev_indirect_births_object(vd->vdev_indirect_births)); in spa_vdev_remove_cancel_sync()
1964 vdev_indirect_births_close(vd->vdev_indirect_births); in spa_vdev_remove_cancel_sync()
1965 vd->vdev_indirect_births = NULL; in spa_vdev_remove_cancel_sync()
1980 vd->vdev_removing = B_FALSE; in spa_vdev_remove_cancel_sync()
1982 if (!vdev_prop_allocating_off(vd)) { in spa_vdev_remove_cancel_sync()
1984 vdev_activate(vd); in spa_vdev_remove_cancel_sync()
1988 vdev_config_dirty(vd); in spa_vdev_remove_cancel_sync()
1991 (u_longlong_t)vd->vdev_id, (u_longlong_t)dmu_tx_get_txg(tx)); in spa_vdev_remove_cancel_sync()
1994 (u_longlong_t)vd->vdev_id, in spa_vdev_remove_cancel_sync()
1995 (vd->vdev_path != NULL) ? vd->vdev_path : "-"); in spa_vdev_remove_cancel_sync()
2046 vdev_remove_make_hole_and_free(vdev_t *vd) in vdev_remove_make_hole_and_free() argument
2048 uint64_t id = vd->vdev_id; in vdev_remove_make_hole_and_free()
2049 spa_t *spa = vd->vdev_spa; in vdev_remove_make_hole_and_free()
2055 vdev_free(vd); in vdev_remove_make_hole_and_free()
2057 vd = vdev_alloc_common(spa, id, 0, &vdev_hole_ops); in vdev_remove_make_hole_and_free()
2058 vdev_add_child(rvd, vd); in vdev_remove_make_hole_and_free()
2071 spa_vdev_remove_log(vdev_t *vd, uint64_t *txg) in spa_vdev_remove_log() argument
2073 metaslab_group_t *mg = vd->vdev_mg; in spa_vdev_remove_log()
2074 spa_t *spa = vd->vdev_spa; in spa_vdev_remove_log()
2077 ASSERT(vd->vdev_islog); in spa_vdev_remove_log()
2078 ASSERT(vd == vd->vdev_top); in spa_vdev_remove_log()
2079 ASSERT0P(vd->vdev_log_mg); in spa_vdev_remove_log()
2097 vdev_initialize_stop_all(vd, VDEV_INITIALIZE_CANCELED); in spa_vdev_remove_log()
2098 vdev_trim_stop_all(vd, VDEV_TRIM_CANCELED); in spa_vdev_remove_log()
2099 vdev_autotrim_stop_wait(vd); in spa_vdev_remove_log()
2108 if (vd->vdev_stat.vs_alloc != 0) in spa_vdev_remove_log()
2115 ASSERT0P(vd->vdev_log_mg); in spa_vdev_remove_log()
2118 ASSERT0(vd->vdev_stat.vs_alloc); in spa_vdev_remove_log()
2124 vd->vdev_removing = B_TRUE; in spa_vdev_remove_log()
2126 vdev_dirty_leaves(vd, VDD_DTL, *txg); in spa_vdev_remove_log()
2127 vdev_config_dirty(vd); in spa_vdev_remove_log()
2149 vdev_metaslab_fini(vd); in spa_vdev_remove_log()
2154 sysevent_t *ev = spa_event_create(spa, vd, NULL, in spa_vdev_remove_log()
2160 ASSERT0(vd->vdev_top_zap); in spa_vdev_remove_log()
2162 ASSERT0(vd->vdev_leaf_zap); in spa_vdev_remove_log()
2164 (void) vdev_label_init(vd, 0, VDEV_LABEL_REMOVE); in spa_vdev_remove_log()
2166 if (list_link_active(&vd->vdev_state_dirty_node)) in spa_vdev_remove_log()
2167 vdev_state_clean(vd); in spa_vdev_remove_log()
2168 if (list_link_active(&vd->vdev_config_dirty_node)) in spa_vdev_remove_log()
2169 vdev_config_clean(vd); in spa_vdev_remove_log()
2171 ASSERT0(vd->vdev_stat.vs_alloc); in spa_vdev_remove_log()
2176 vdev_remove_make_hole_and_free(vd); in spa_vdev_remove_log()
2185 spa_vdev_remove_top_check(vdev_t *vd) in spa_vdev_remove_top_check() argument
2187 spa_t *spa = vd->vdev_spa; in spa_vdev_remove_top_check()
2189 if (vd != vd->vdev_top) in spa_vdev_remove_top_check()
2192 if (!vdev_is_concrete(vd)) in spa_vdev_remove_top_check()
2201 if (vd->vdev_removing) in spa_vdev_remove_top_check()
2204 metaslab_class_t *mc = vd->vdev_mg->mg_class; in spa_vdev_remove_top_check()
2218 ASSERT3U(available, >=, vd->vdev_stat.vs_alloc); in spa_vdev_remove_top_check()
2219 if (available < vd->vdev_stat.vs_alloc) in spa_vdev_remove_top_check()
2221 } else if (!vd->vdev_noalloc) { in spa_vdev_remove_top_check()
2225 if (available < vd->vdev_stat.vs_dspace) in spa_vdev_remove_top_check()
2238 if (!vdev_dtl_empty(vd, DTL_MISSING) || in spa_vdev_remove_top_check()
2239 !vdev_dtl_empty(vd, DTL_OUTAGE)) in spa_vdev_remove_top_check()
2245 if (!vdev_readable(vd)) in spa_vdev_remove_top_check()
2258 ASSERT(!vd->vdev_islog); in spa_vdev_remove_top_check()
2259 if (vd->vdev_alloc_bias != VDEV_BIAS_NONE && in spa_vdev_remove_top_check()
2260 vd->vdev_ashift != spa->spa_max_ashift) { in spa_vdev_remove_top_check()
2276 if (vd->vdev_alloc_bias != VDEV_BIAS_NONE && in spa_vdev_remove_top_check()
2277 cvd->vdev_alloc_bias == vd->vdev_alloc_bias && in spa_vdev_remove_top_check()
2278 cvd->vdev_ashift != vd->vdev_ashift) { in spa_vdev_remove_top_check()
2313 spa_vdev_remove_top(vdev_t *vd, uint64_t *txg) in spa_vdev_remove_top() argument
2315 spa_t *spa = vd->vdev_spa; in spa_vdev_remove_top()
2324 error = spa_vdev_remove_top_check(vd); in spa_vdev_remove_top()
2334 if (error == 0 && !vd->vdev_noalloc) { in spa_vdev_remove_top()
2336 error = vdev_passivate(vd, txg); in spa_vdev_remove_top()
2350 vdev_initialize_stop_all(vd, VDEV_INITIALIZE_ACTIVE); in spa_vdev_remove_top()
2351 vdev_trim_stop_all(vd, VDEV_TRIM_ACTIVE); in spa_vdev_remove_top()
2352 vdev_autotrim_stop_wait(vd); in spa_vdev_remove_top()
2360 error = spa_vdev_remove_top_check(vd); in spa_vdev_remove_top()
2364 vdev_activate(vd); in spa_vdev_remove_top()
2371 vd->vdev_removing = B_TRUE; in spa_vdev_remove_top()
2373 vdev_dirty_leaves(vd, VDD_DTL, *txg); in spa_vdev_remove_top()
2374 vdev_config_dirty(vd); in spa_vdev_remove_top()
2377 vdev_remove_initiate_sync, (void *)(uintptr_t)vd->vdev_id, tx); in spa_vdev_remove_top()
2395 vdev_t *vd; in spa_vdev_remove() local
2421 vd = spa_lookup_by_guid(spa, guid, B_FALSE); in spa_vdev_remove()
2431 if (vd == NULL || unspare) { in spa_vdev_remove()
2439 if (vd == NULL && draid_spare) { in spa_vdev_remove()
2442 if (vd == NULL) in spa_vdev_remove()
2443 vd = spa_lookup_by_guid(spa, in spa_vdev_remove()
2445 ev = spa_event_create(spa, vd, NULL, in spa_vdev_remove()
2469 vd = spa_lookup_by_guid(spa, guid, B_TRUE); in spa_vdev_remove()
2479 mutex_enter(&vd->vdev_trim_lock); in spa_vdev_remove()
2480 vdev_trim_stop(vd, VDEV_TRIM_CANCELED, NULL); in spa_vdev_remove()
2481 mutex_exit(&vd->vdev_trim_lock); in spa_vdev_remove()
2484 ev = spa_event_create(spa, vd, NULL, ESC_ZFS_VDEV_REMOVE_AUX); in spa_vdev_remove()
2489 } else if (vd != NULL && vd->vdev_islog) { in spa_vdev_remove()
2492 vd_path = spa_strdup((vd->vdev_path != NULL) ? in spa_vdev_remove()
2493 vd->vdev_path : "-"); in spa_vdev_remove()
2494 error = spa_vdev_remove_log(vd, &txg); in spa_vdev_remove()
2495 } else if (vd != NULL) { in spa_vdev_remove()
2497 error = spa_vdev_remove_top(vd, &txg); in spa_vdev_remove()
2548 vdev_t *vd = spa->spa_root_vdev->vdev_child[indirect_vdev_id]; in spa_removal_get_stats() local
2549 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in spa_removal_get_stats()
2550 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in spa_removal_get_stats()
2552 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_removal_get_stats()