Merge commit 'refs/top-bases/linux-have-libdiskmgt' into linux-have-libdiskmgt

This commit is contained in:
Brian Behlendorf 2009-01-15 14:52:23 -08:00
commit 49131e9851
1 changed files with 12 additions and 8 deletions

View File

@ -279,6 +279,7 @@ static vdev_t *
vdev_alloc_common(spa_t *spa, uint_t id, uint64_t guid, vdev_ops_t *ops) vdev_alloc_common(spa_t *spa, uint_t id, uint64_t guid, vdev_ops_t *ops)
{ {
vdev_t *vd; vdev_t *vd;
int t;
vd = kmem_zalloc(sizeof (vdev_t), KM_SLEEP); vd = kmem_zalloc(sizeof (vdev_t), KM_SLEEP);
@ -318,7 +319,7 @@ vdev_alloc_common(spa_t *spa, uint_t id, uint64_t guid, vdev_ops_t *ops)
mutex_init(&vd->vdev_dtl_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&vd->vdev_dtl_lock, NULL, MUTEX_DEFAULT, NULL);
mutex_init(&vd->vdev_stat_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&vd->vdev_stat_lock, NULL, MUTEX_DEFAULT, NULL);
mutex_init(&vd->vdev_probe_lock, NULL, MUTEX_DEFAULT, NULL); mutex_init(&vd->vdev_probe_lock, NULL, MUTEX_DEFAULT, NULL);
for (int t = 0; t < DTL_TYPES; t++) { for (t = 0; t < DTL_TYPES; t++) {
space_map_create(&vd->vdev_dtl[t], 0, -1ULL, 0, space_map_create(&vd->vdev_dtl[t], 0, -1ULL, 0,
&vd->vdev_dtl_lock); &vd->vdev_dtl_lock);
} }
@ -513,7 +514,7 @@ vdev_alloc(spa_t *spa, vdev_t **vdp, nvlist_t *nv, vdev_t *parent, uint_t id,
void void
vdev_free(vdev_t *vd) vdev_free(vdev_t *vd)
{ {
int c; int c, t;
spa_t *spa = vd->vdev_spa; spa_t *spa = vd->vdev_spa;
/* /*
@ -572,7 +573,7 @@ vdev_free(vdev_t *vd)
txg_list_destroy(&vd->vdev_dtl_list); txg_list_destroy(&vd->vdev_dtl_list);
mutex_enter(&vd->vdev_dtl_lock); mutex_enter(&vd->vdev_dtl_lock);
for (int t = 0; t < DTL_TYPES; t++) { for (t = 0; t < DTL_TYPES; t++) {
space_map_unload(&vd->vdev_dtl[t]); space_map_unload(&vd->vdev_dtl[t]);
space_map_destroy(&vd->vdev_dtl[t]); space_map_destroy(&vd->vdev_dtl[t]);
} }
@ -1388,11 +1389,11 @@ vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg, int scrub_done)
{ {
spa_t *spa = vd->vdev_spa; spa_t *spa = vd->vdev_spa;
avl_tree_t reftree; avl_tree_t reftree;
int minref; int c, t, minref;
ASSERT(spa_config_held(spa, SCL_ALL, RW_READER) != 0); ASSERT(spa_config_held(spa, SCL_ALL, RW_READER) != 0);
for (int c = 0; c < vd->vdev_children; c++) for (c = 0; c < vd->vdev_children; c++)
vdev_dtl_reassess(vd->vdev_child[c], txg, vdev_dtl_reassess(vd->vdev_child[c], txg,
scrub_txg, scrub_done); scrub_txg, scrub_done);
@ -1450,7 +1451,7 @@ vdev_dtl_reassess(vdev_t *vd, uint64_t txg, uint64_t scrub_txg, int scrub_done)
} }
mutex_enter(&vd->vdev_dtl_lock); mutex_enter(&vd->vdev_dtl_lock);
for (int t = 0; t < DTL_TYPES; t++) { for (t = 0; t < DTL_TYPES; t++) {
if (t == DTL_SCRUB) if (t == DTL_SCRUB)
continue; /* leaf vdevs only */ continue; /* leaf vdevs only */
if (t == DTL_PARTIAL) if (t == DTL_PARTIAL)
@ -1602,6 +1603,7 @@ vdev_resilver_needed(vdev_t *vd, uint64_t *minp, uint64_t *maxp)
boolean_t needed = B_FALSE; boolean_t needed = B_FALSE;
uint64_t thismin = UINT64_MAX; uint64_t thismin = UINT64_MAX;
uint64_t thismax = 0; uint64_t thismax = 0;
int c;
if (vd->vdev_children == 0) { if (vd->vdev_children == 0) {
mutex_enter(&vd->vdev_dtl_lock); mutex_enter(&vd->vdev_dtl_lock);
@ -1617,7 +1619,7 @@ vdev_resilver_needed(vdev_t *vd, uint64_t *minp, uint64_t *maxp)
} }
mutex_exit(&vd->vdev_dtl_lock); mutex_exit(&vd->vdev_dtl_lock);
} else { } else {
for (int c = 0; c < vd->vdev_children; c++) { for (c = 0; c < vd->vdev_children; c++) {
vdev_t *cvd = vd->vdev_child[c]; vdev_t *cvd = vd->vdev_child[c];
uint64_t cmin, cmax; uint64_t cmin, cmax;
@ -1639,10 +1641,12 @@ vdev_resilver_needed(vdev_t *vd, uint64_t *minp, uint64_t *maxp)
void void
vdev_load(vdev_t *vd) vdev_load(vdev_t *vd)
{ {
int c;
/* /*
* Recursively load all children. * Recursively load all children.
*/ */
for (int c = 0; c < vd->vdev_children; c++) for (c = 0; c < vd->vdev_children; c++)
vdev_load(vd->vdev_child[c]); vdev_load(vd->vdev_child[c]);
/* /*