Use stderr for 'no pools/datasets available' error

The 'zfs list' and 'zpool list' commands output the message
'no datasets/pools available' to stdout.  This should go to
stderr and only the available datasets/pools should go to
stdout.  Returning nothing to stdout is expected behavior
when there is nothing to list.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #581
This commit is contained in:
Gregor Kopka 2012-03-14 14:34:00 +01:00 committed by Brian Behlendorf
parent 0ece356db5
commit 42cb3819f1
2 changed files with 6 additions and 6 deletions

4
cmd/zfs/zfs_main.c Normal file → Executable file
View File

@ -2834,7 +2834,7 @@ zfs_do_list(int argc, char **argv)
zfs_free_sort_columns(sortcol); zfs_free_sort_columns(sortcol);
if (ret == 0 && cb.cb_first && !cb.cb_scripted) if (ret == 0 && cb.cb_first && !cb.cb_scripted)
(void) printf(gettext("no datasets available\n")); (void) fprintf(stderr, gettext("no datasets available\n"));
return (ret); return (ret);
} }
@ -5139,7 +5139,7 @@ zfs_do_holds(int argc, char **argv)
print_holds(scripted, cb.cb_max_namelen, cb.cb_max_taglen, nvl); print_holds(scripted, cb.cb_max_namelen, cb.cb_max_taglen, nvl);
if (nvlist_empty(nvl)) if (nvlist_empty(nvl))
(void) printf(gettext("no datasets available\n")); (void) fprintf(stderr, gettext("no datasets available\n"));
nvlist_free(nvl); nvlist_free(nvl);

8
cmd/zpool/zpool_main.c Normal file → Executable file
View File

@ -2358,7 +2358,7 @@ zpool_do_iostat(int argc, char **argv)
pool_list_update(list); pool_list_update(list);
if ((npools = pool_list_count(list)) == 0) if ((npools = pool_list_count(list)) == 0)
(void) printf(gettext("no pools available\n")); (void) fprintf(stderr, gettext("no pools available\n"));
else { else {
/* /*
* Refresh all statistics. This is done as an * Refresh all statistics. This is done as an
@ -2599,7 +2599,7 @@ zpool_do_list(int argc, char **argv)
list_callback, &cb); list_callback, &cb);
if (argc == 0 && cb.cb_first) if (argc == 0 && cb.cb_first)
(void) printf(gettext("no pools available\n")); (void) fprintf(stderr, gettext("no pools available\n"));
else if (argc && cb.cb_first) { else if (argc && cb.cb_first) {
/* cannot open the given pool */ /* cannot open the given pool */
zprop_free_list(cb.cb_proplist); zprop_free_list(cb.cb_proplist);
@ -3793,7 +3793,7 @@ zpool_do_status(int argc, char **argv)
status_callback, &cb); status_callback, &cb);
if (argc == 0 && cb.cb_count == 0) if (argc == 0 && cb.cb_count == 0)
(void) printf(gettext("no pools available\n")); (void) fprintf(stderr, gettext("no pools available\n"));
else if (cb.cb_explain && cb.cb_first && cb.cb_allpools) else if (cb.cb_explain && cb.cb_first && cb.cb_allpools)
(void) printf(gettext("all pools are healthy\n")); (void) printf(gettext("all pools are healthy\n"));
@ -4219,7 +4219,7 @@ zpool_do_history(int argc, char **argv)
&cbdata); &cbdata);
if (argc == 0 && cbdata.first == B_TRUE) { if (argc == 0 && cbdata.first == B_TRUE) {
(void) printf(gettext("no pools available\n")); (void) fprintf(stderr, gettext("no pools available\n"));
return (0); return (0);
} }