diff --git a/sys/contrib/openzfs/module/zfs/arc.c b/sys/contrib/openzfs/module/zfs/arc.c index 70565cc25011..10ff8af0c8eb 100644 --- a/sys/contrib/openzfs/module/zfs/arc.c +++ b/sys/contrib/openzfs/module/zfs/arc.c @@ -5980,10 +5980,11 @@ arc_read(zio_t *pio, spa_t *spa, const blkptr_t *bp, } /* - * Gracefully handle a damaged logical block size as a - * checksum error. + * Gracefully handle a damaged logical or physical block size + * as a checksum error. */ - if (lsize > spa_maxblocksize(spa)) { + if (lsize > spa_maxblocksize(spa) || + psize > SPA_MAXBLOCKSIZE) { rc = SET_ERROR(ECKSUM); if (hash_lock != NULL) mutex_exit(hash_lock);