Lines Matching defs:cvd

514 vdev_add_child(vdev_t *pvd, vdev_t *cvd)
517 uint64_t id = cvd->vdev_id;
520 ASSERT(spa_config_held(cvd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL);
521 ASSERT(cvd->vdev_parent == NULL);
523 cvd->vdev_parent = pvd;
541 pvd->vdev_child[id] = cvd;
543 cvd->vdev_top = (pvd->vdev_top ? pvd->vdev_top: cvd);
544 ASSERT(cvd->vdev_top->vdev_parent->vdev_parent == NULL);
550 pvd->vdev_guid_sum += cvd->vdev_guid_sum;
552 if (cvd->vdev_ops->vdev_op_leaf) {
553 list_insert_head(&cvd->vdev_spa->spa_leaf_list, cvd);
554 cvd->vdev_spa->spa_leaf_list_gen++;
559 vdev_remove_child(vdev_t *pvd, vdev_t *cvd)
562 uint_t id = cvd->vdev_id;
564 ASSERT(cvd->vdev_parent == pvd);
570 ASSERT(pvd->vdev_child[id] == cvd);
573 cvd->vdev_parent = NULL;
585 if (cvd->vdev_ops->vdev_op_leaf) {
586 spa_t *spa = cvd->vdev_spa;
587 list_remove(&spa->spa_leaf_list, cvd);
595 pvd->vdev_guid_sum -= cvd->vdev_guid_sum;
604 vdev_t **newchild, *cvd;
621 if ((cvd = pvd->vdev_child[c]) != NULL) {
622 newchild[newc] = cvd;
623 cvd->vdev_id = newc++;
1344 vdev_add_parent(vdev_t *cvd, vdev_ops_t *ops)
1346 spa_t *spa = cvd->vdev_spa;
1347 vdev_t *pvd = cvd->vdev_parent;
1352 mvd = vdev_alloc_common(spa, cvd->vdev_id, 0, ops);
1354 mvd->vdev_asize = cvd->vdev_asize;
1355 mvd->vdev_min_asize = cvd->vdev_min_asize;
1356 mvd->vdev_max_asize = cvd->vdev_max_asize;
1357 mvd->vdev_psize = cvd->vdev_psize;
1358 mvd->vdev_ashift = cvd->vdev_ashift;
1359 mvd->vdev_logical_ashift = cvd->vdev_logical_ashift;
1360 mvd->vdev_physical_ashift = cvd->vdev_physical_ashift;
1361 mvd->vdev_state = cvd->vdev_state;
1362 mvd->vdev_crtxg = cvd->vdev_crtxg;
1364 vdev_remove_child(pvd, cvd);
1366 cvd->vdev_id = mvd->vdev_children;
1367 vdev_add_child(mvd, cvd);
1368 vdev_top_update(cvd->vdev_top, cvd->vdev_top);
1371 vdev_top_transfer(cvd, mvd);
1380 vdev_remove_parent(vdev_t *cvd)
1382 vdev_t *mvd = cvd->vdev_parent;
1385 ASSERT(spa_config_held(cvd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL);
1391 cvd->vdev_ashift = mvd->vdev_ashift;
1392 cvd->vdev_logical_ashift = mvd->vdev_logical_ashift;
1393 cvd->vdev_physical_ashift = mvd->vdev_physical_ashift;
1394 vdev_remove_child(mvd, cvd);
1398 * If cvd will replace mvd as a top-level vdev, preserve mvd's guid.
1404 uint64_t guid_delta = mvd->vdev_guid - cvd->vdev_guid;
1405 cvd->vdev_orig_guid = cvd->vdev_guid;
1406 cvd->vdev_guid += guid_delta;
1407 cvd->vdev_guid_sum += guid_delta;
1411 * mvd's asize to prevent automatic expansion of cvd.
1417 if (!cvd->vdev_spa->spa_autoexpand)
1418 cvd->vdev_asize = mvd->vdev_asize;
1420 cvd->vdev_id = mvd->vdev_id;
1421 vdev_add_child(pvd, cvd);
1422 vdev_top_update(cvd->vdev_top, cvd->vdev_top);
1424 if (cvd == cvd->vdev_top)
1425 vdev_top_transfer(mvd, cvd);
1912 vdev_t *cvd = vd->vdev_child[c];
1914 if (open_func(cvd) == B_FALSE)
1918 cvd->vdev_open_error = vdev_open(cvd);
1921 cvd, TQ_SLEEP) != TASKQID_INVALID);
1924 vd->vdev_nonrot &= cvd->vdev_nonrot;
2340 vdev_t *cvd = vd->vdev_child[c];
2342 if (tq == NULL || vdev_uses_zvols(cvd)) {
2343 vdev_validate_child(cvd);
2345 VERIFY(taskq_dispatch(tq, vdev_validate_child, cvd,
3318 vdev_t *cvd = vd->vdev_child[c];
3319 mutex_enter(&cvd->vdev_dtl_lock);
3321 cvd->vdev_dtl[s], 1);
3322 mutex_exit(&cvd->vdev_dtl_lock);
3633 vdev_t *cvd = vd->vdev_child[c];
3636 if (vdev_resilver_needed(cvd, &cmin, &cmax)) {
3697 vdev_t *cvd = vd->vdev_child[c];
3699 if (tq == NULL || vdev_uses_zvols(cvd)) {
3700 cvd->vdev_load_error = vdev_load(cvd);
3703 cvd, TQ_SLEEP) != TASKQID_INVALID);
4648 vdev_get_child_stat(vdev_t *cvd, vdev_stat_t *vs, vdev_stat_t *cvs)
4654 if (cvd->vdev_ops == &vdev_draid_spare_ops)
4662 cvs->vs_scan_removing = cvd->vdev_removing;
4669 vdev_get_child_stat_ex(vdev_t *cvd, vdev_stat_ex_t *vsx, vdev_stat_ex_t *cvsx)
4671 (void) cvd;
4742 vdev_t *cvd = vd->vdev_child[c];
4743 vdev_stat_t *cvs = &cvd->vdev_stat;
4744 vdev_stat_ex_t *cvsx = &cvd->vdev_stat_ex;
4746 vdev_get_stats_ex_impl(cvd, cvs, cvsx);
4748 vdev_get_child_stat(cvd, vs, cvs);
4750 vdev_get_child_stat_ex(cvd, vsx, cvsx);
5594 vdev_t *cvd, *pvd = vd->vdev_parent;
5603 cvd = pvd->vdev_child[0];
5605 vdev_remove_parent(cvd);
5606 cvd->vdev_splitting = B_TRUE;
5608 vdev_propagate_state(cvd);
5615 vdev_t *cvd = vd->vdev_child[c];
5617 vdev_deadman(cvd, tag);
5667 vdev_t *cvd = vd->vdev_child[c];
5668 resilver_needed |= vdev_clear_resilver_deferred(cvd, tx);