Lines Matching refs:vd

324 vdev_indirect_mark_obsolete(vdev_t *vd, uint64_t offset, uint64_t size)  in vdev_indirect_mark_obsolete()  argument
326 spa_t *spa = vd->vdev_spa; in vdev_indirect_mark_obsolete()
328 ASSERT3U(vd->vdev_indirect_config.vic_mapping_object, !=, 0); in vdev_indirect_mark_obsolete()
329 ASSERT(vd->vdev_removing || vd->vdev_ops == &vdev_indirect_ops); in vdev_indirect_mark_obsolete()
332 vd->vdev_indirect_mapping, offset) != NULL); in vdev_indirect_mark_obsolete()
335 mutex_enter(&vd->vdev_obsolete_lock); in vdev_indirect_mark_obsolete()
336 range_tree_add(vd->vdev_obsolete_segments, offset, size); in vdev_indirect_mark_obsolete()
337 mutex_exit(&vd->vdev_obsolete_lock); in vdev_indirect_mark_obsolete()
338 vdev_dirty(vd, 0, NULL, spa_syncing_txg(spa)); in vdev_indirect_mark_obsolete()
351 vdev_t *vd = vdev_lookup_top(spa, vdev_id); in spa_vdev_indirect_mark_obsolete() local
355 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_vdev_indirect_mark_obsolete()
356 vdev_indirect_mark_obsolete(vd, offset, size); in spa_vdev_indirect_mark_obsolete()
392 vdev_indirect_should_condense(vdev_t *vd) in vdev_indirect_should_condense() argument
394 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in vdev_indirect_should_condense()
395 spa_t *spa = vd->vdev_spa; in vdev_indirect_should_condense()
416 if (vd->vdev_ops != &vdev_indirect_ops) in vdev_indirect_should_condense()
423 if (vd->vdev_obsolete_sm == NULL) { in vdev_indirect_should_condense()
424 ASSERT0(vdev_obsolete_sm_object(vd)); in vdev_indirect_should_condense()
428 ASSERT(vd->vdev_obsolete_sm != NULL); in vdev_indirect_should_condense()
430 ASSERT3U(vdev_obsolete_sm_object(vd), ==, in vdev_indirect_should_condense()
431 space_map_object(vd->vdev_obsolete_sm)); in vdev_indirect_should_condense()
434 uint64_t bytes_obsolete = space_map_allocated(vd->vdev_obsolete_sm); in vdev_indirect_should_condense()
436 uint64_t obsolete_sm_size = space_map_length(vd->vdev_obsolete_sm); in vdev_indirect_should_condense()
451 (u_longlong_t)vd->vdev_id, in vdev_indirect_should_condense()
464 (u_longlong_t)vd->vdev_id, in vdev_indirect_should_condense()
485 vdev_t *vd = vdev_lookup_top(spa, scip->scip_vdev); in spa_condense_indirect_complete_sync() local
486 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in spa_condense_indirect_complete_sync()
488 vdev_indirect_mapping_t *old_mapping = vd->vdev_indirect_mapping; in spa_condense_indirect_complete_sync()
494 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_condense_indirect_complete_sync()
500 ASSERT3U(vd->vdev_id, ==, scip->scip_vdev); in spa_condense_indirect_complete_sync()
507 rw_enter(&vd->vdev_indirect_rwlock, RW_WRITER); in spa_condense_indirect_complete_sync()
508 vdev_indirect_mapping_close(vd->vdev_indirect_mapping); in spa_condense_indirect_complete_sync()
509 vd->vdev_indirect_mapping = sci->sci_new_mapping; in spa_condense_indirect_complete_sync()
510 rw_exit(&vd->vdev_indirect_rwlock); in spa_condense_indirect_complete_sync()
531 vd->vdev_id, dmu_tx_get_txg(tx), vic->vic_mapping_object, in spa_condense_indirect_complete_sync()
592 spa_condense_indirect_generate_new_mapping(vdev_t *vd, in spa_condense_indirect_generate_new_mapping() argument
595 spa_t *spa = vd->vdev_spa; in spa_condense_indirect_generate_new_mapping()
597 vdev_indirect_mapping_t *old_mapping = vd->vdev_indirect_mapping; in spa_condense_indirect_generate_new_mapping()
601 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_condense_indirect_generate_new_mapping()
602 ASSERT3U(vd->vdev_id, ==, spa->spa_condensing_indirect_phys.scip_vdev); in spa_condense_indirect_generate_new_mapping()
605 (u_longlong_t)vd->vdev_id, in spa_condense_indirect_generate_new_mapping()
612 "at index %llu", (u_longlong_t)vd->vdev_id, in spa_condense_indirect_generate_new_mapping()
650 vdev_t *vd; in spa_condense_indirect_thread() local
654 vd = vdev_lookup_top(spa, spa->spa_condensing_indirect_phys.scip_vdev); in spa_condense_indirect_thread()
655 ASSERT3P(vd, !=, NULL); in spa_condense_indirect_thread()
663 vdev_indirect_mapping_t *old_mapping = vd->vdev_indirect_mapping; in spa_condense_indirect_thread()
666 ASSERT3U(vd->vdev_id, ==, scip->scip_vdev); in spa_condense_indirect_thread()
669 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_condense_indirect_thread()
683 scip->scip_prev_obsolete_sm_object, 0, vd->vdev_asize, 0)); in spa_condense_indirect_thread()
730 spa_condense_indirect_generate_new_mapping(vd, counts, in spa_condense_indirect_thread()
753 spa_condense_indirect_start_sync(vdev_t *vd, dmu_tx_t *tx) in spa_condense_indirect_start_sync() argument
755 spa_t *spa = vd->vdev_spa; in spa_condense_indirect_start_sync()
763 ASSERT3P(vd->vdev_ops, ==, &vdev_indirect_ops); in spa_condense_indirect_start_sync()
765 ASSERT(vdev_indirect_mapping_num_entries(vd->vdev_indirect_mapping)); in spa_condense_indirect_start_sync()
767 uint64_t obsolete_sm_obj = vdev_obsolete_sm_object(vd); in spa_condense_indirect_start_sync()
770 scip->scip_vdev = vd->vdev_id; in spa_condense_indirect_start_sync()
780 space_map_close(vd->vdev_obsolete_sm); in spa_condense_indirect_start_sync()
781 vd->vdev_obsolete_sm = NULL; in spa_condense_indirect_start_sync()
782 VERIFY0(zap_remove(spa->spa_meta_objset, vd->vdev_top_zap, in spa_condense_indirect_start_sync()
795 vd->vdev_id, dmu_tx_get_txg(tx), in spa_condense_indirect_start_sync()
809 vdev_indirect_sync_obsolete(vdev_t *vd, dmu_tx_t *tx) in vdev_indirect_sync_obsolete() argument
811 spa_t *spa = vd->vdev_spa; in vdev_indirect_sync_obsolete()
812 vdev_indirect_config_t *vic = &vd->vdev_indirect_config; in vdev_indirect_sync_obsolete()
815 ASSERT(range_tree_space(vd->vdev_obsolete_segments) > 0); in vdev_indirect_sync_obsolete()
816 ASSERT(vd->vdev_removing || vd->vdev_ops == &vdev_indirect_ops); in vdev_indirect_sync_obsolete()
819 if (vdev_obsolete_sm_object(vd) == 0) { in vdev_indirect_sync_obsolete()
824 ASSERT(vd->vdev_top_zap != 0); in vdev_indirect_sync_obsolete()
825 VERIFY0(zap_add(vd->vdev_spa->spa_meta_objset, vd->vdev_top_zap, in vdev_indirect_sync_obsolete()
828 ASSERT3U(vdev_obsolete_sm_object(vd), !=, 0); in vdev_indirect_sync_obsolete()
831 VERIFY0(space_map_open(&vd->vdev_obsolete_sm, in vdev_indirect_sync_obsolete()
833 0, vd->vdev_asize, 0)); in vdev_indirect_sync_obsolete()
836 ASSERT(vd->vdev_obsolete_sm != NULL); in vdev_indirect_sync_obsolete()
837 ASSERT3U(vdev_obsolete_sm_object(vd), ==, in vdev_indirect_sync_obsolete()
838 space_map_object(vd->vdev_obsolete_sm)); in vdev_indirect_sync_obsolete()
840 space_map_write(vd->vdev_obsolete_sm, in vdev_indirect_sync_obsolete()
841 vd->vdev_obsolete_segments, SM_ALLOC, SM_NO_VDEVID, tx); in vdev_indirect_sync_obsolete()
842 range_tree_vacate(vd->vdev_obsolete_segments, NULL, NULL); in vdev_indirect_sync_obsolete()
889 vdev_obsolete_sm_object(vdev_t *vd) in vdev_obsolete_sm_object() argument
891 ASSERT0(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER)); in vdev_obsolete_sm_object()
892 if (vd->vdev_top_zap == 0) { in vdev_obsolete_sm_object()
897 int err = zap_lookup(vd->vdev_spa->spa_meta_objset, vd->vdev_top_zap, in vdev_obsolete_sm_object()
906 vdev_obsolete_counts_are_precise(vdev_t *vd) in vdev_obsolete_counts_are_precise() argument
908 ASSERT0(spa_config_held(vd->vdev_spa, SCL_ALL, RW_WRITER)); in vdev_obsolete_counts_are_precise()
909 if (vd->vdev_top_zap == 0) { in vdev_obsolete_counts_are_precise()
914 int err = zap_lookup(vd->vdev_spa->spa_meta_objset, vd->vdev_top_zap, in vdev_obsolete_counts_are_precise()
924 vdev_indirect_close(vdev_t *vd) in vdev_indirect_close() argument
930 vdev_indirect_open(vdev_t *vd, uint64_t *psize, uint64_t *max_psize, in vdev_indirect_open() argument
933 *psize = *max_psize = vd->vdev_asize + in vdev_indirect_open()
935 *ashift = vd->vdev_ashift; in vdev_indirect_open()
948 rs_alloc(vdev_t *vd, uint64_t offset, uint64_t asize, uint64_t split_offset) in rs_alloc() argument
951 rs->rs_vd = vd; in rs_alloc()
972 vdev_indirect_mapping_duplicate_adjacent_entries(vdev_t *vd, uint64_t offset, in vdev_indirect_mapping_duplicate_adjacent_entries() argument
976 vdev_indirect_mapping_t *vim = vd->vdev_indirect_mapping; in vdev_indirect_mapping_duplicate_adjacent_entries()
979 ASSERT(RW_READ_HELD(&vd->vdev_indirect_rwlock)); in vdev_indirect_mapping_duplicate_adjacent_entries()
1037 vdev_indirect_remap(vdev_t *vd, uint64_t offset, uint64_t asize, in vdev_indirect_remap() argument
1041 spa_t *spa = vd->vdev_spa; in vdev_indirect_remap()
1046 for (remap_segment_t *rs = rs_alloc(vd, offset, asize, 0); in vdev_indirect_remap()
1176 vdev_indirect_gather_splits(uint64_t split_offset, vdev_t *vd, uint64_t offset, in vdev_indirect_gather_splits() argument
1182 ASSERT3P(vd, !=, NULL); in vdev_indirect_gather_splits()
1184 if (vd->vdev_ops == &vdev_indirect_ops) in vdev_indirect_gather_splits()
1188 if (vd->vdev_ops == &vdev_mirror_ops) in vdev_indirect_gather_splits()
1189 n = vd->vdev_children; in vdev_indirect_gather_splits()
1198 is->is_vdev = vd; in vdev_indirect_gather_splits()
1208 if (vd->vdev_ops == &vdev_mirror_ops) { in vdev_indirect_gather_splits()
1210 is->is_child[i].ic_vdev = vd->vdev_child[i]; in vdev_indirect_gather_splits()
1214 is->is_child[0].ic_vdev = vd; in vdev_indirect_gather_splits()
1372 vdev_t *vd = ic->ic_vdev; in vdev_indirect_checksum_error() local
1377 mutex_enter(&vd->vdev_stat_lock); in vdev_indirect_checksum_error()
1378 vd->vdev_stat.vs_checksum_errors++; in vdev_indirect_checksum_error()
1379 mutex_exit(&vd->vdev_stat_lock); in vdev_indirect_checksum_error()
1384 (void) zfs_ereport_post_checksum(zio->io_spa, vd, &zio->io_bookmark, in vdev_indirect_checksum_error()
1453 vdev_t *vd = ic->ic_vdev; in vdev_indirect_all_checksum_errors() local
1455 mutex_enter(&vd->vdev_stat_lock); in vdev_indirect_all_checksum_errors()
1456 vd->vdev_stat.vs_checksum_errors++; in vdev_indirect_all_checksum_errors()
1457 mutex_exit(&vd->vdev_stat_lock); in vdev_indirect_all_checksum_errors()
1459 (void) zfs_ereport_post_checksum(zio->io_spa, vd, in vdev_indirect_all_checksum_errors()