]> git.proxmox.com Git - mirror_zfs.git/commitdiff
Handle ECKSUM as new EZFS_CKSUM ‒ "insufficient replicas"
authorнаб <nabijaczleweli@nabijaczleweli.xyz>
Fri, 16 Sep 2022 20:59:25 +0000 (22:59 +0200)
committerGitHub <noreply@github.com>
Fri, 16 Sep 2022 20:59:25 +0000 (13:59 -0700)
Add a meaningful error message for ECKSUM to common error messages.

Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #6805
Closes #13808
Closes #13898

include/libzfs.h
lib/libzfs/libzfs_util.c

index 92c7bf6d1c93727fb467af3bf6ffba2f0489b3da..4fc776122596262427ee6b93dc6aeba622c4408f 100644 (file)
@@ -151,6 +151,7 @@ typedef enum zfs_error {
        EZFS_REBUILDING,        /* resilvering (sequential reconstrution) */
        EZFS_VDEV_NOTSUP,       /* ops not supported for this type of vdev */
        EZFS_NOT_USER_NAMESPACE,        /* a file is not a user namespace */
+       EZFS_CKSUM,             /* insufficient replicas */
        EZFS_UNKNOWN
 } zfs_error_t;
 
index cca86d2d7828c1838b8d5db6b37e58191971c0a7..3067e8d46396c84102ca33b9acff34e2c249b714 100644 (file)
@@ -170,6 +170,8 @@ libzfs_error_description(libzfs_handle_t *hdl)
                return (dgettext(TEXT_DOMAIN, "I/O error"));
        case EZFS_INTR:
                return (dgettext(TEXT_DOMAIN, "signal received"));
+       case EZFS_CKSUM:
+               return (dgettext(TEXT_DOMAIN, "insufficient replicas"));
        case EZFS_ISSPARE:
                return (dgettext(TEXT_DOMAIN, "device is reserved as a hot "
                    "spare"));
@@ -396,6 +398,10 @@ zfs_common_error(libzfs_handle_t *hdl, int error, const char *fmt,
        case EINTR:
                zfs_verror(hdl, EZFS_INTR, fmt, ap);
                return (-1);
+
+       case ECKSUM:
+               zfs_verror(hdl, EZFS_CKSUM, fmt, ap);
+               return (-1);
        }
 
        return (0);