Lines Matching refs:cvd

431 vdev_add_child(vdev_t *pvd, vdev_t *cvd)
434 uint64_t id = cvd->vdev_id;
436 spa_t *spa = cvd->vdev_spa;
439 ASSERT(cvd->vdev_parent == NULL);
441 cvd->vdev_parent = pvd;
459 pvd->vdev_child[id] = cvd;
461 cvd->vdev_top = (pvd->vdev_top ? pvd->vdev_top: cvd);
462 ASSERT(cvd->vdev_top->vdev_parent->vdev_parent == NULL);
468 pvd->vdev_guid_sum += cvd->vdev_guid_sum;
472 vdev_remove_child(vdev_t *pvd, vdev_t *cvd)
475 uint_t id = cvd->vdev_id;
477 ASSERT(cvd->vdev_parent == pvd);
483 ASSERT(pvd->vdev_child[id] == cvd);
486 cvd->vdev_parent = NULL;
502 pvd->vdev_guid_sum -= cvd->vdev_guid_sum;
511 vdev_t **newchild, *cvd;
528 if ((cvd = pvd->vdev_child[c]) != NULL) {
529 newchild[newc] = cvd;
530 cvd->vdev_id = newc++;
1102 vdev_add_parent(vdev_t *cvd, vdev_ops_t *ops)
1104 spa_t *spa = cvd->vdev_spa;
1105 vdev_t *pvd = cvd->vdev_parent;
1110 mvd = vdev_alloc_common(spa, cvd->vdev_id, 0, ops);
1112 mvd->vdev_asize = cvd->vdev_asize;
1113 mvd->vdev_min_asize = cvd->vdev_min_asize;
1114 mvd->vdev_max_asize = cvd->vdev_max_asize;
1115 mvd->vdev_psize = cvd->vdev_psize;
1116 mvd->vdev_ashift = cvd->vdev_ashift;
1117 mvd->vdev_logical_ashift = cvd->vdev_logical_ashift;
1118 mvd->vdev_physical_ashift = cvd->vdev_physical_ashift;
1119 mvd->vdev_state = cvd->vdev_state;
1120 mvd->vdev_crtxg = cvd->vdev_crtxg;
1122 vdev_remove_child(pvd, cvd);
1124 cvd->vdev_id = mvd->vdev_children;
1125 vdev_add_child(mvd, cvd);
1126 vdev_top_update(cvd->vdev_top, cvd->vdev_top);
1129 vdev_top_transfer(cvd, mvd);
1138 vdev_remove_parent(vdev_t *cvd)
1140 vdev_t *mvd = cvd->vdev_parent;
1143 ASSERT(spa_config_held(cvd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL);
1149 cvd->vdev_ashift = mvd->vdev_ashift;
1150 cvd->vdev_logical_ashift = mvd->vdev_logical_ashift;
1151 cvd->vdev_physical_ashift = mvd->vdev_physical_ashift;
1153 vdev_remove_child(mvd, cvd);
1157 * If cvd will replace mvd as a top-level vdev, preserve mvd's guid.
1163 uint64_t guid_delta = mvd->vdev_guid - cvd->vdev_guid;
1164 cvd->vdev_orig_guid = cvd->vdev_guid;
1165 cvd->vdev_guid += guid_delta;
1166 cvd->vdev_guid_sum += guid_delta;
1168 cvd->vdev_id = mvd->vdev_id;
1169 vdev_add_child(pvd, cvd);
1170 vdev_top_update(cvd->vdev_top, cvd->vdev_top);
1172 if (cvd == cvd->vdev_top)
1173 vdev_top_transfer(mvd, cvd);
2595 vdev_t *cvd = vd->vdev_child[c];
2596 mutex_enter(&cvd->vdev_dtl_lock);
2597 space_reftree_add_map(&reftree, cvd->vdev_dtl[s], 1);
2598 mutex_exit(&cvd->vdev_dtl_lock);
2824 vdev_t *cvd = vd->vdev_child[c];
2827 if (vdev_resilver_needed(cvd, &cmin, &cmax)) {
3674 vdev_t *cvd = rvd->vdev_child[c];
3675 vdev_stat_t *cvs = &cvd->vdev_stat;
3681 cvs->vs_scan_removing = cvd->vdev_removing;
4326 vdev_t *cvd, *pvd = vd->vdev_parent;
4331 cvd = pvd->vdev_child[0];
4333 vdev_remove_parent(cvd);
4334 cvd->vdev_splitting = B_TRUE;
4336 vdev_propagate_state(cvd);
4343 vdev_t *cvd = vd->vdev_child[c];
4345 vdev_deadman(cvd);