Skip to content

Commit

Permalink
Illumos 4966 - zpool list iterator does not update output
Browse files Browse the repository at this point in the history
4966 zpool list iterator does not update output
Reviewed by: Matthew Ahrens <[email protected]>
Reviewed by: Christopher Siden <[email protected]>
Reviewed by: Dan McDonald <[email protected]>
Approved by: Garrett D'Amore <[email protected]>

References:
  illumos/illumos-gate@cd67d23
  https://www.illumos.org/issues/4966

Ported-by: kernelOfTruth [email protected]
Signed-off-by: Brian Behlendorf <[email protected]>
Closes #3566
  • Loading branch information
grwilson authored and behlendorf committed Jul 10, 2015
1 parent 411bf20 commit 3e43edd
Showing 1 changed file with 10 additions and 10 deletions.
20 changes: 10 additions & 10 deletions cmd/zpool/zpool_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -3285,17 +3285,10 @@ zpool_do_list(int argc, char **argv)
if (zprop_get_list(g_zfs, props, &cb.cb_proplist, ZFS_TYPE_POOL) != 0)
usage(B_FALSE);

if ((list = pool_list_get(argc, argv, &cb.cb_proplist, &ret)) == NULL)
return (1);

if (argc == 0 && !cb.cb_scripted && pool_list_count(list) == 0) {
(void) printf(gettext("no pools available\n"));
zprop_free_list(cb.cb_proplist);
return (0);
}

for (;;) {
pool_list_update(list);
if ((list = pool_list_get(argc, argv, &cb.cb_proplist,
&ret)) == NULL)
return (1);

if (pool_list_count(list) == 0)
break;
Expand All @@ -3315,9 +3308,16 @@ zpool_do_list(int argc, char **argv)
if (count != 0 && --count == 0)
break;

pool_list_free(list);
(void) sleep(interval);
}

if (argc == 0 && !cb.cb_scripted && pool_list_count(list) == 0) {
(void) printf(gettext("no pools available\n"));
ret = 0;
}

pool_list_free(list);
zprop_free_list(cb.cb_proplist);
return (ret);
}
Expand Down

0 comments on commit 3e43edd

Please sign in to comment.