Home | History | Annotate | Download | only in zfs

Lines Matching defs:cvd

300 vdev_add_child(vdev_t *pvd, vdev_t *cvd)
303 uint64_t id = cvd->vdev_id;
305 spa_t *spa = cvd->vdev_spa;
308 ASSERT(cvd->vdev_parent == NULL);
310 cvd->vdev_parent = pvd;
328 pvd->vdev_child[id] = cvd;
330 cvd->vdev_top = (pvd->vdev_top ? pvd->vdev_top: cvd);
331 ASSERT(cvd->vdev_top->vdev_parent->vdev_parent == NULL);
337 pvd->vdev_guid_sum += cvd->vdev_guid_sum;
341 vdev_remove_child(vdev_t *pvd, vdev_t *cvd)
344 uint_t id = cvd->vdev_id;
346 ASSERT(cvd->vdev_parent == pvd);
352 ASSERT(pvd->vdev_child[id] == cvd);
355 cvd->vdev_parent = NULL;
371 pvd->vdev_guid_sum -= cvd->vdev_guid_sum;
380 vdev_t **newchild, *cvd;
393 if ((cvd = pvd->vdev_child[c]) != NULL) {
394 newchild[newc] = cvd;
395 cvd->vdev_id = newc++;
872 vdev_add_parent(vdev_t *cvd, vdev_ops_t *ops)
874 spa_t *spa = cvd->vdev_spa;
875 vdev_t *pvd = cvd->vdev_parent;
880 mvd = vdev_alloc_common(spa, cvd->vdev_id, 0, ops);
882 mvd->vdev_asize = cvd->vdev_asize;
883 mvd->vdev_min_asize = cvd->vdev_min_asize;
884 mvd->vdev_max_asize = cvd->vdev_max_asize;
885 mvd->vdev_ashift = cvd->vdev_ashift;
886 mvd->vdev_logical_ashift = cvd->vdev_logical_ashift;
887 mvd->vdev_physical_ashift = cvd->vdev_physical_ashift;
888 mvd->vdev_state = cvd->vdev_state;
889 mvd->vdev_crtxg = cvd->vdev_crtxg;
891 vdev_remove_child(pvd, cvd);
893 cvd->vdev_id = mvd->vdev_children;
894 vdev_add_child(mvd, cvd);
895 vdev_top_update(cvd->vdev_top, cvd->vdev_top);
898 vdev_top_transfer(cvd, mvd);
907 vdev_remove_parent(vdev_t *cvd)
909 vdev_t *mvd = cvd->vdev_parent;
912 ASSERT(spa_config_held(cvd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL);
918 cvd->vdev_ashift = mvd->vdev_ashift;
919 cvd->vdev_logical_ashift = mvd->vdev_logical_ashift;
920 cvd->vdev_physical_ashift = mvd->vdev_physical_ashift;
922 vdev_remove_child(mvd, cvd);
926 * If cvd will replace mvd as a top-level vdev, preserve mvd's guid.
932 uint64_t guid_delta = mvd->vdev_guid - cvd->vdev_guid;
933 cvd->vdev_orig_guid = cvd->vdev_guid;
934 cvd->vdev_guid += guid_delta;
935 cvd->vdev_guid_sum += guid_delta;
937 cvd->vdev_id = mvd->vdev_id;
938 vdev_add_child(pvd, cvd);
939 vdev_top_update(cvd->vdev_top, cvd->vdev_top);
941 if (cvd == cvd->vdev_top)
942 vdev_top_transfer(mvd, cvd);
2051 vdev_t *cvd = vd->vdev_child[c];
2052 mutex_enter(&cvd->vdev_dtl_lock);
2053 space_reftree_add_map(&reftree, cvd->vdev_dtl[s], 1);
2054 mutex_exit(&cvd->vdev_dtl_lock);
2288 vdev_t *cvd = vd->vdev_child[c];
2291 if (vdev_resilver_needed(cvd, &cmin, &cmax)) {
2929 vdev_t *cvd = rvd->vdev_child[c];
2930 vdev_stat_t *cvs = &cvd->vdev_stat;
2936 cvs->vs_scan_removing = cvd->vdev_removing;
3577 vdev_t *cvd, *pvd = vd->vdev_parent;
3582 cvd = pvd->vdev_child[0];
3584 vdev_remove_parent(cvd);
3585 cvd->vdev_splitting = B_TRUE;
3587 vdev_propagate_state(cvd);
3594 vdev_t *cvd = vd->vdev_child[c];
3596 vdev_deadman(cvd);