Improve 'zpool import' EBUSY error message
[zfs.git] / lib / libzfs / libzfs_pool.c
index 311def6..7b78f25 100644 (file)
@@ -1585,6 +1585,12 @@ zpool_import_props(libzfs_handle_t *hdl, nvlist_t *config, const char *newname,
                        (void) zpool_standard_error(hdl, error, desc);
                        break;
 
+               case EBUSY:
+                       zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+                           "one or more devices are already in use\n"));
+                       (void) zfs_error(hdl, EZFS_BADDEV, desc);
+                       break;
+
                default:
                        (void) zpool_standard_error(hdl, error, desc);
                        zpool_explain_recover(hdl,
@@ -2082,7 +2088,7 @@ zpool_relabel_disk(libzfs_handle_t *hdl, const char *path)
 
        if ((fd = open(path, O_RDWR|O_DIRECT)) < 0) {
                zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "cannot "
-                   "relabel '%s': unable to open device"), path);
+                   "relabel '%s': unable to open device: %d"), path, errno);
                return (zfs_error(hdl, EZFS_OPENFAILED, errbuf));
        }
 
@@ -3763,8 +3769,8 @@ zpool_label_disk(libzfs_handle_t *hdl, zpool_handle_t *zhp, char *name)
                 * This shouldn't happen.  We've long since verified that this
                 * is a valid device.
                 */
-               zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
-                   "unable to open device '%s': %d"), path, errno);
+               zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "cannot "
+                   "label '%s': unable to open device: %d"), path, errno);
                return (zfs_error(hdl, EZFS_OPENFAILED, errbuf));
        }
 
@@ -3777,8 +3783,8 @@ zpool_label_disk(libzfs_handle_t *hdl, zpool_handle_t *zhp, char *name)
                        (void) no_memory(hdl);
 
                (void) close(fd);
-               zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
-                   "unable to read disk capacity"), name);
+               zfs_error_aux(hdl, dgettext(TEXT_DOMAIN, "cannot "
+                   "label '%s': unable to read disk capacity"), path);
 
                return (zfs_error(hdl, EZFS_NOCAP, errbuf));
        }