OpenZFS 8897 - zpool online -e fails assertion when run on non-leaf vdevs
Authored by: Yuri Pankov <yuri.pankov@nexenta.com> Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed-by: George Melikov <mail@gmelikov.ru> Approved by: Dan McDonald <danmcd@joyent.com> Ported-by: Brian Behlendorf <behlendorf1@llnl.gov> OpenZFS-issue: https://www.illumos.org/issues/8897 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/9a551dd645 Closes #7030
This commit is contained in:
parent
6a2185660d
commit
8198c57b21
|
@ -2516,6 +2516,7 @@ zpool_vdev_online(zpool_handle_t *zhp, const char *path, int flags,
|
||||||
{
|
{
|
||||||
zfs_cmd_t zc = {"\0"};
|
zfs_cmd_t zc = {"\0"};
|
||||||
char msg[1024];
|
char msg[1024];
|
||||||
|
char *pathname;
|
||||||
nvlist_t *tgt;
|
nvlist_t *tgt;
|
||||||
boolean_t avail_spare, l2cache, islog;
|
boolean_t avail_spare, l2cache, islog;
|
||||||
libzfs_handle_t *hdl = zhp->zpool_hdl;
|
libzfs_handle_t *hdl = zhp->zpool_hdl;
|
||||||
|
@ -2539,8 +2540,9 @@ zpool_vdev_online(zpool_handle_t *zhp, const char *path, int flags,
|
||||||
if (avail_spare)
|
if (avail_spare)
|
||||||
return (zfs_error(hdl, EZFS_ISSPARE, msg));
|
return (zfs_error(hdl, EZFS_ISSPARE, msg));
|
||||||
|
|
||||||
if (flags & ZFS_ONLINE_EXPAND ||
|
if ((flags & ZFS_ONLINE_EXPAND ||
|
||||||
zpool_get_prop_int(zhp, ZPOOL_PROP_AUTOEXPAND, NULL)) {
|
zpool_get_prop_int(zhp, ZPOOL_PROP_AUTOEXPAND, NULL)) &&
|
||||||
|
nvlist_lookup_string(tgt, ZPOOL_CONFIG_PATH, &pathname) == 0) {
|
||||||
uint64_t wholedisk = 0;
|
uint64_t wholedisk = 0;
|
||||||
|
|
||||||
(void) nvlist_lookup_uint64(tgt, ZPOOL_CONFIG_WHOLE_DISK,
|
(void) nvlist_lookup_uint64(tgt, ZPOOL_CONFIG_WHOLE_DISK,
|
||||||
|
|
Loading…
Reference in New Issue