]> git.proxmox.com Git - mirror_zfs.git/blobdiff - lib/libzfs/libzfs_dataset.c
Fix 'zfs remap <poolname@snapname>'
[mirror_zfs.git] / lib / libzfs / libzfs_dataset.c
index 3eb3aebbc6bc906a7532dc54fdf10f53577304c8..ecbc12bfe352b8fa7e8fd2d01290e1cfc72351c3 100644 (file)
@@ -4075,12 +4075,24 @@ zfs_remap_indirects(libzfs_handle_t *hdl, const char *fs)
        char errbuf[1024];
 
        (void) snprintf(errbuf, sizeof (errbuf), dgettext(TEXT_DOMAIN,
-           "cannot remap filesystem '%s' "), fs);
+           "cannot remap dataset '%s'"), fs);
 
        err = lzc_remap(fs);
 
        if (err != 0) {
-               (void) zfs_standard_error(hdl, err, errbuf);
+               switch (err) {
+               case ENOTSUP:
+                       zfs_error_aux(hdl, dgettext(TEXT_DOMAIN,
+                           "pool must be upgraded"));
+                       (void) zfs_error(hdl, EZFS_BADVERSION, errbuf);
+                       break;
+               case EINVAL:
+                       (void) zfs_error(hdl, EZFS_BADTYPE, errbuf);
+                       break;
+               default:
+                       (void) zfs_standard_error(hdl, err, errbuf);
+                       break;
+               }
        }
 
        return (err);