diff options
author | pjd <pjd@FreeBSD.org> | 2010-09-09 21:15:16 +0000 |
---|---|---|
committer | pjd <pjd@FreeBSD.org> | 2010-09-09 21:15:16 +0000 |
commit | 87570d6f03a8ba3c5e9538377d23a4aaae3439a0 (patch) | |
tree | f8cea7843e84a2d5daf3fe0ddb7c2023b8fd21e1 /sys/boot/zfs | |
parent | 42286dca3aa7c8530567e7693a4ec62e73430ea0 (diff) | |
download | FreeBSD-src-87570d6f03a8ba3c5e9538377d23a4aaae3439a0.zip FreeBSD-src-87570d6f03a8ba3c5e9538377d23a4aaae3439a0.tar.gz |
Remove duplicated code.
MFC after: 2 weeks
Diffstat (limited to 'sys/boot/zfs')
-rw-r--r-- | sys/boot/zfs/zfsimpl.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/sys/boot/zfs/zfsimpl.c b/sys/boot/zfs/zfsimpl.c index e645eba..e7ed218 100644 --- a/sys/boot/zfs/zfsimpl.c +++ b/sys/boot/zfs/zfsimpl.c @@ -488,7 +488,16 @@ vdev_init_from_nvlist(const unsigned char *nvlist, vdev_t **vdevp, int is_newer) vdev->v_name = strdup(type); } } + } else { + is_new = 0; + } + if (is_new || is_newer) { + /* + * This is either new vdev or we've already seen this vdev, + * but from an older vdev label, so let's refresh its state + * from the newer label. + */ if (is_offline) vdev->v_state = VDEV_STATE_OFFLINE; else if (is_removed) @@ -499,26 +508,6 @@ vdev_init_from_nvlist(const unsigned char *nvlist, vdev_t **vdevp, int is_newer) vdev->v_state = VDEV_STATE_DEGRADED; else vdev->v_state = VDEV_STATE_HEALTHY; - } else { - is_new = 0; - - if (is_newer) { - /* - * We've already seen this vdev, but from an older - * vdev label, so let's refresh its state from the - * newer label. - */ - if (is_offline) - vdev->v_state = VDEV_STATE_OFFLINE; - else if (is_removed) - vdev->v_state = VDEV_STATE_REMOVED; - else if (is_faulted) - vdev->v_state = VDEV_STATE_FAULTED; - else if (is_degraded) - vdev->v_state = VDEV_STATE_DEGRADED; - else - vdev->v_state = VDEV_STATE_HEALTHY; - } } rc = nvlist_find(nvlist, ZPOOL_CONFIG_CHILDREN, |