Check b_freeze_cksum under ZFS_DEBUG_MODIFY conditional

The b_freeze_cksum field can only have data when ZFS_DEBUG_MODIFY
is set.  Therefore, the EQUIV check must be wrapped accordingly.
For the same reason the ASSERT in arc_buf_fill() in unsafe.
However, since it's largely redundant it has simply been removed.

Reviewed-by: George Wilson <gwilson@delphix.com>
Reviewed-by: Allan Jude <allanjude@freebsd.org>
Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #8979
This commit is contained in:
Brian Behlendorf 2019-07-03 13:01:54 -07:00 committed by GitHub
parent aa79910726
commit 46db9d6161
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1872,7 +1872,8 @@ arc_buf_try_copy_decompressed_data(arc_buf_t *buf)
* There were no decompressed bufs, so there should not be a * There were no decompressed bufs, so there should not be a
* checksum on the hdr either. * checksum on the hdr either.
*/ */
EQUIV(!copied, hdr->b_l1hdr.b_freeze_cksum == NULL); if (zfs_flags & ZFS_DEBUG_MODIFY)
EQUIV(!copied, hdr->b_l1hdr.b_freeze_cksum == NULL);
return (copied); return (copied);
} }
@ -2253,7 +2254,6 @@ arc_buf_fill(arc_buf_t *buf, spa_t *spa, const zbookmark_phys_t *zb,
*/ */
if (arc_buf_try_copy_decompressed_data(buf)) { if (arc_buf_try_copy_decompressed_data(buf)) {
/* Skip byteswapping and checksumming (already done) */ /* Skip byteswapping and checksumming (already done) */
ASSERT3P(hdr->b_l1hdr.b_freeze_cksum, !=, NULL);
return (0); return (0);
} else { } else {
error = zio_decompress_data(HDR_GET_COMPRESS(hdr), error = zio_decompress_data(HDR_GET_COMPRESS(hdr),