diff options
| author | Eric Taylor <Eric.Taylor@Sun.COM> | 2009-06-11 11:10:31 -0600 |
|---|---|---|
| committer | Eric Taylor <Eric.Taylor@Sun.COM> | 2009-06-11 11:10:31 -0600 |
| commit | f64c0e34235c0ee36e44e9ff1cf0cd3764ed227d (patch) | |
| tree | 797b54b0cd47d836e93231cb700b6f8571950efd /usr/src/uts/common/fs/zfs/vdev_label.c | |
| parent | b9aa66a73c9016cf5c71fe80efe90ce9f2ca5c73 (diff) | |
| download | illumos-joyent-f64c0e34235c0ee36e44e9ff1cf0cd3764ed227d.tar.gz | |
6566744 vdev_open() should be done in parallel
Diffstat (limited to 'usr/src/uts/common/fs/zfs/vdev_label.c')
| -rw-r--r-- | usr/src/uts/common/fs/zfs/vdev_label.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/usr/src/uts/common/fs/zfs/vdev_label.c b/usr/src/uts/common/fs/zfs/vdev_label.c index 48d5fc232b..346b443b79 100644 --- a/usr/src/uts/common/fs/zfs/vdev_label.c +++ b/usr/src/uts/common/fs/zfs/vdev_label.c @@ -642,8 +642,8 @@ vdev_label_init(vdev_t *vd, uint64_t crtxg, vdev_labeltype_t reason) /* * Initialize uberblock template. */ - ub = zio_buf_alloc(VDEV_UBERBLOCK_SIZE(vd)); - bzero(ub, VDEV_UBERBLOCK_SIZE(vd)); + ub = zio_buf_alloc(VDEV_UBERBLOCK_RING); + bzero(ub, VDEV_UBERBLOCK_RING); *ub = spa->spa_uberblock; ub->ub_txg = 0; @@ -672,11 +672,9 @@ retry: offsetof(vdev_label_t, vl_pad2), VDEV_PAD_SIZE, NULL, NULL, flags); - for (int n = 0; n < VDEV_UBERBLOCK_COUNT(vd); n++) { - vdev_label_write(zio, vd, l, ub, - VDEV_UBERBLOCK_OFFSET(vd, n), - VDEV_UBERBLOCK_SIZE(vd), NULL, NULL, flags); - } + vdev_label_write(zio, vd, l, ub, + offsetof(vdev_label_t, vl_uberblock), + VDEV_UBERBLOCK_RING, NULL, NULL, flags); } error = zio_wait(zio); @@ -688,7 +686,7 @@ retry: nvlist_free(label); zio_buf_free(pad2, VDEV_PAD_SIZE); - zio_buf_free(ub, VDEV_UBERBLOCK_SIZE(vd)); + zio_buf_free(ub, VDEV_UBERBLOCK_RING); zio_buf_free(vp, sizeof (vdev_phys_t)); /* |
