Page MenuHomeFreeBSD

D7634.id.diff
No OneTemporary

D7634.id.diff

Index: head/sys/cddl/boot/zfs/zfssubr.c
===================================================================
--- head/sys/cddl/boot/zfs/zfssubr.c
+++ head/sys/cddl/boot/zfs/zfssubr.c
@@ -270,6 +270,7 @@
uint64_t size;
unsigned int checksum;
zio_checksum_info_t *ci;
+ void *ctx = NULL;
zio_cksum_t actual_cksum, expected_cksum, verifier;
int byteswap;
@@ -282,7 +283,11 @@
if (ci->ci_func[0] == NULL || ci->ci_func[1] == NULL)
return (EINVAL);
- zio_checksum_template_init(checksum, (spa_t *) spa);
+ if (spa != NULL) {
+ zio_checksum_template_init(checksum, (spa_t *) spa);
+ ctx = spa->spa_cksum_tmpls[checksum];
+ }
+
if (ci->ci_flags & ZCHECKSUM_FLAG_EMBEDDED) {
zio_eck_t *eck;
@@ -306,8 +311,7 @@
expected_cksum = eck->zec_cksum;
eck->zec_cksum = verifier;
- ci->ci_func[byteswap](data, size,
- spa->spa_cksum_tmpls[checksum], &actual_cksum);
+ ci->ci_func[byteswap](data, size, ctx, &actual_cksum);
eck->zec_cksum = expected_cksum;
if (byteswap)
@@ -315,8 +319,7 @@
sizeof (zio_cksum_t));
} else {
expected_cksum = bp->blk_cksum;
- ci->ci_func[0](data, size, spa->spa_cksum_tmpls[checksum],
- &actual_cksum);
+ ci->ci_func[0](data, size, ctx, &actual_cksum);
}
if (!ZIO_CHECKSUM_EQUAL(actual_cksum, expected_cksum)) {

File Metadata

Mime Type
text/plain
Expires
Fri, Apr 24, 10:14 AM (5 h, 40 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32072492
Default Alt Text
D7634.id.diff (1 KB)

Event Timeline