Lines Matching refs:pvd

115 	vdev_t *pvd = vd->vdev_parent;  in vdev_get_min_asize()  local
121 if (pvd == NULL) in vdev_get_min_asize()
135 if (pvd->vdev_ops == &vdev_raidz_ops) in vdev_get_min_asize()
136 return (pvd->vdev_min_asize / pvd->vdev_children); in vdev_get_min_asize()
138 return (pvd->vdev_min_asize); in vdev_get_min_asize()
202 vdev_add_child(vdev_t *pvd, vdev_t *cvd) in vdev_add_child() argument
212 cvd->vdev_parent = pvd; in vdev_add_child()
214 if (pvd == NULL) in vdev_add_child()
217 ASSERT(id >= pvd->vdev_children || pvd->vdev_child[id] == NULL); in vdev_add_child()
219 oldsize = pvd->vdev_children * sizeof (vdev_t *); in vdev_add_child()
220 pvd->vdev_children = MAX(pvd->vdev_children, id + 1); in vdev_add_child()
221 newsize = pvd->vdev_children * sizeof (vdev_t *); in vdev_add_child()
224 if (pvd->vdev_child != NULL) { in vdev_add_child()
225 bcopy(pvd->vdev_child, newchild, oldsize); in vdev_add_child()
226 kmem_free(pvd->vdev_child, oldsize); in vdev_add_child()
229 pvd->vdev_child = newchild; in vdev_add_child()
230 pvd->vdev_child[id] = cvd; in vdev_add_child()
232 cvd->vdev_top = (pvd->vdev_top ? pvd->vdev_top: cvd); in vdev_add_child()
238 for (; pvd != NULL; pvd = pvd->vdev_parent) in vdev_add_child()
239 pvd->vdev_guid_sum += cvd->vdev_guid_sum; in vdev_add_child()
243 vdev_remove_child(vdev_t *pvd, vdev_t *cvd) in vdev_remove_child() argument
248 ASSERT(cvd->vdev_parent == pvd); in vdev_remove_child()
250 if (pvd == NULL) in vdev_remove_child()
253 ASSERT(id < pvd->vdev_children); in vdev_remove_child()
254 ASSERT(pvd->vdev_child[id] == cvd); in vdev_remove_child()
256 pvd->vdev_child[id] = NULL; in vdev_remove_child()
259 for (c = 0; c < pvd->vdev_children; c++) in vdev_remove_child()
260 if (pvd->vdev_child[c]) in vdev_remove_child()
263 if (c == pvd->vdev_children) { in vdev_remove_child()
264 kmem_free(pvd->vdev_child, c * sizeof (vdev_t *)); in vdev_remove_child()
265 pvd->vdev_child = NULL; in vdev_remove_child()
266 pvd->vdev_children = 0; in vdev_remove_child()
272 for (; pvd != NULL; pvd = pvd->vdev_parent) in vdev_remove_child()
273 pvd->vdev_guid_sum -= cvd->vdev_guid_sum; in vdev_remove_child()
280 vdev_compact_children(vdev_t *pvd) in vdev_compact_children() argument
283 int oldc = pvd->vdev_children; in vdev_compact_children()
286 ASSERT(spa_config_held(pvd->vdev_spa, SCL_ALL, RW_WRITER) == SCL_ALL); in vdev_compact_children()
289 if (pvd->vdev_child[c]) in vdev_compact_children()
295 if ((cvd = pvd->vdev_child[c]) != NULL) { in vdev_compact_children()
301 kmem_free(pvd->vdev_child, oldc * sizeof (vdev_t *)); in vdev_compact_children()
302 pvd->vdev_child = newchild; in vdev_compact_children()
303 pvd->vdev_children = newc; in vdev_compact_children()
760 vdev_t *pvd = cvd->vdev_parent; in vdev_add_parent() local
774 vdev_remove_child(pvd, cvd); in vdev_add_parent()
775 vdev_add_child(pvd, mvd); in vdev_add_parent()
793 vdev_t *pvd = mvd->vdev_parent; in vdev_remove_parent() local
804 vdev_remove_child(pvd, mvd); in vdev_remove_parent()
819 vdev_add_child(pvd, cvd); in vdev_remove_parent()
1465 vdev_t *pvd = vd->vdev_parent; in vdev_close() local
1473 if (pvd != NULL && pvd->vdev_reopening) in vdev_close()
1474 vd->vdev_reopening = (pvd->vdev_reopening && !vd->vdev_offline); in vdev_close()
2365 vdev_t *vd, *tvd, *pvd, *rvd = spa->spa_root_vdev; in vdev_online() local
2383 for (pvd = vd; pvd != rvd; pvd = pvd->vdev_parent) in vdev_online()
2384 pvd->vdev_expanding = !!(flags & ZFS_ONLINE_EXPAND); in vdev_online()
2391 for (pvd = vd; pvd != rvd; pvd = pvd->vdev_parent) in vdev_online()
2392 pvd->vdev_expanding = B_FALSE; in vdev_online()
2716 vdev_t *pvd; in vdev_stat_update() local
2841 for (pvd = vd; pvd != rvd; pvd = pvd->vdev_parent) in vdev_stat_update()
2842 vdev_dtl_dirty(pvd, DTL_PARTIAL, txg, 1); in vdev_stat_update()
3323 vdev_t *cvd, *pvd = vd->vdev_parent; in vdev_split() local
3325 vdev_remove_child(pvd, vd); in vdev_split()
3326 vdev_compact_children(pvd); in vdev_split()
3328 cvd = pvd->vdev_child[0]; in vdev_split()
3329 if (pvd->vdev_children == 1) { in vdev_split()