Author: avg
Date: Wed Mar  7 13:39:10 2018
New Revision: 330588
URL: https://svnweb.freebsd.org/changeset/base/330588

Log:
  MFC r329714: MFV r329713: 8731 ASSERT3U(nui64s, <=, UINT16_MAX) fails for 
large blocks

Modified:
  stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c
==============================================================================
--- stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c   Wed Mar 
 7 13:37:25 2018        (r330587)
+++ stable/11/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_fm.c   Wed Mar 
 7 13:39:10 2018        (r330588)
@@ -360,8 +360,8 @@ zfs_ereport_start(nvlist_t **ereport_out, nvlist_t **d
 
 typedef struct zfs_ecksum_info {
        /* histograms of set and cleared bits by bit number in a 64-bit word */
-       uint16_t zei_histogram_set[sizeof (uint64_t) * NBBY];
-       uint16_t zei_histogram_cleared[sizeof (uint64_t) * NBBY];
+       uint32_t zei_histogram_set[sizeof (uint64_t) * NBBY];
+       uint32_t zei_histogram_cleared[sizeof (uint64_t) * NBBY];
 
        /* inline arrays of bits set and cleared. */
        uint64_t zei_bits_set[ZFM_MAX_INLINE];
@@ -386,7 +386,7 @@ typedef struct zfs_ecksum_info {
 } zfs_ecksum_info_t;
 
 static void
-update_histogram(uint64_t value_arg, uint16_t *hist, uint32_t *count)
+update_histogram(uint64_t value_arg, uint32_t *hist, uint32_t *count)
 {
        size_t i;
        size_t bits = 0;
@@ -552,7 +552,7 @@ annotate_ecksum(nvlist_t *ereport, zio_bad_cksum_t *in
        if (badbuf == NULL || goodbuf == NULL)
                return (eip);
 
-       ASSERT3U(nui64s, <=, UINT16_MAX);
+       ASSERT3U(nui64s, <=, UINT32_MAX);
        ASSERT3U(size, ==, nui64s * sizeof (uint64_t));
        ASSERT3U(size, <=, SPA_MAXBLOCKSIZE);
        ASSERT3U(size, <=, UINT32_MAX);
@@ -654,10 +654,10 @@ annotate_ecksum(nvlist_t *ereport, zio_bad_cksum_t *in
        } else {
                fm_payload_set(ereport,
                    FM_EREPORT_PAYLOAD_ZFS_BAD_SET_HISTOGRAM,
-                   DATA_TYPE_UINT16_ARRAY,
+                   DATA_TYPE_UINT32_ARRAY,
                    NBBY * sizeof (uint64_t), eip->zei_histogram_set,
                    FM_EREPORT_PAYLOAD_ZFS_BAD_CLEARED_HISTOGRAM,
-                   DATA_TYPE_UINT16_ARRAY,
+                   DATA_TYPE_UINT32_ARRAY,
                    NBBY * sizeof (uint64_t), eip->zei_histogram_cleared,
                    NULL);
        }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to