svn commit: r356707 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys

Alexander Motin mav at FreeBSD.org
Mon Jan 13 22:06:17 UTC 2020


Author: mav
Date: Mon Jan 13 22:06:16 2020
New Revision: 356707
URL: https://svnweb.freebsd.org/changeset/base/356707

Log:
  Map ECKSUM and EFRAGS from ZFS onto real errnos.
  
  Make it less confusing when, for example, stat sets errno to 122 because a
  checksum failed in ZFS:
  
  Before: getfacl: /foo/bar: stat() failed: Unknown error: 122
  After: getfacl: /foo/bar: stat() failed: Integrity check failed
  
  Submitted by:	Ryan Moeller <ryan at ixsystems.com>
  Reviewed by:	mckusick, mav
  MFC after:	2 weeks
  Sponsored by:	iXsystems, Inc.
  Differential Revision:	https://reviews.freebsd.org/D22973

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h	Mon Jan 13 22:01:37 2020	(r356706)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h	Mon Jan 13 22:06:16 2020	(r356707)
@@ -233,12 +233,11 @@ enum zio_wait_type {
 };
 
 /*
- * We'll take the number 122 and 123 to indicate checksum errors and
- * fragmentation. Those doesn't collide with any errno values as they
- * are greater than ELAST.
+ * These are bespoke errnos used in ZFS. We map them to their closest FreeBSD
+ * equivalents. This gives us more useful error messages from strerror(3).
  */
-#define	ECKSUM	122
-#define	EFRAGS	123
+#define	ECKSUM	EINTEGRITY
+#define	EFRAGS	ENOSPC
 
 typedef void zio_done_func_t(zio_t *zio);
 


More information about the svn-src-all mailing list