diff options
author | David Marker <David.Marker@sun.com> | 2008-11-14 20:57:58 -0800 |
---|---|---|
committer | David Marker <David.Marker@sun.com> | 2008-11-14 20:57:58 -0800 |
commit | 6988b9faa522d6126f42aed519e94113e48f4de0 (patch) | |
tree | a72ed37c919a9d3fd5d101b6254ed9de0fea1ee3 /usr/src/uts/common/fs/zfs/vdev.c | |
parent | 137e2f25e10005c56c157f22e407cc6ef70a6d39 (diff) | |
download | illumos-gate-6988b9faa522d6126f42aed519e94113e48f4de0.tar.gz |
backout 6752810: causes data corruption on zfs root pool
Diffstat (limited to 'usr/src/uts/common/fs/zfs/vdev.c')
-rw-r--r-- | usr/src/uts/common/fs/zfs/vdev.c | 23 |
1 files changed, 1 insertions, 22 deletions
diff --git a/usr/src/uts/common/fs/zfs/vdev.c b/usr/src/uts/common/fs/zfs/vdev.c index 38b238e3ed..16a27e514a 100644 --- a/usr/src/uts/common/fs/zfs/vdev.c +++ b/usr/src/uts/common/fs/zfs/vdev.c @@ -1642,7 +1642,7 @@ vdev_fault(spa_t *spa, uint64_t guid) vdev_set_state(vd, B_FALSE, VDEV_STATE_FAULTED, VDEV_AUX_ERR_EXCEEDED); /* - * If marking the vdev as faulted causes the top-level vdev to become + * If marking the vdev as faulted cause the top-level vdev to become * unavailable, then back off and simply mark the vdev as degraded * instead. */ @@ -1708,27 +1708,6 @@ vdev_online(spa_t *spa, uint64_t guid, uint64_t flags, vdev_state_t *newstate) { vdev_t *vd; - if (spa_is_root(spa)) { - /* - * if we're trying to online a device that's part of - * the root pool, trigger an attach (if any) with only - * the SCL_STATE lock held in order to avoid a deadlock - * where modload tries to read from the disk - */ - spa_config_enter(spa, SCL_STATE, FTAG, RW_WRITER); - if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL) { - spa_config_exit(spa, SCL_STATE, FTAG); - return (ENODEV); - } - if (!vd->vdev_ops->vdev_op_leaf) { - spa_config_exit(spa, SCL_STATE, FTAG); - return (ENOTSUP); - } - vdev_close(vd); - vdev_open(vd); - spa_config_exit(spa, SCL_STATE, FTAG); - } - spa_vdev_state_enter(spa); if ((vd = spa_lookup_by_guid(spa, guid, B_TRUE)) == NULL) |