Fix zpool status -v error message

When a pool is suspended it's impossible to read the list
of damaged files from disk.  This would result in a generic
misleading "insufficient permissions" error message.

Update zpool_get_errlog() to use the standard zpool error
logging functions to generate a useful error message.  In
this case:

  errors: List of errors unavailable: pool I/O is currently suspended

This patch does not address the related issue of potentially
not being able to resume a suspend pool when the underlying
device names have changed.

Additionally, remove the error handling from zfs_alloc()
in zpool_get_errlog() for readability since this function
can never fail.

Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #4031
Closes #5731 
Closes #5907
This commit is contained in:
Brian Behlendorf
2017-03-22 18:08:55 -07:00
committed by GitHub
parent 6a9d635998
commit 56a6054d55
2 changed files with 7 additions and 10 deletions
+1 -4
View File
@@ -5603,11 +5603,8 @@ print_error_log(zpool_handle_t *zhp)
char *pathname;
size_t len = MAXPATHLEN * 2;
if (zpool_get_errlog(zhp, &nverrlist) != 0) {
(void) printf("errors: List of errors unavailable "
"(insufficient privileges)\n");
if (zpool_get_errlog(zhp, &nverrlist) != 0)
return;
}
(void) printf("errors: Permanent errors have been "
"detected in the following files:\n\n");