aboutsummaryrefslogtreecommitdiffstats
path: root/cmd
diff options
context:
space:
mode:
Diffstat (limited to 'cmd')
-rw-r--r--cmd/zdb/zdb.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/cmd/zdb/zdb.c b/cmd/zdb/zdb.c
index 2d35bd0f9..3cdd7f2c1 100644
--- a/cmd/zdb/zdb.c
+++ b/cmd/zdb/zdb.c
@@ -6608,13 +6608,18 @@ zdb_read_block(char *thing, spa_t *spa)
}
error = zio_wait(czio);
if (error == 0 || error == ECKSUM) {
- zio_checksum_compute(czio, ck, pabd, lsize);
+ zio_t *ck_zio = zio_root(spa, NULL, NULL, 0);
+ ck_zio->io_offset =
+ DVA_GET_OFFSET(&bp->blk_dva[0]);
+ ck_zio->io_bp = bp;
+ zio_checksum_compute(ck_zio, ck, pabd, lsize);
printf("%12s\tcksum=%llx:%llx:%llx:%llx\n",
zio_checksum_table[ck].ci_name,
(u_longlong_t)bp->blk_cksum.zc_word[0],
(u_longlong_t)bp->blk_cksum.zc_word[1],
(u_longlong_t)bp->blk_cksum.zc_word[2],
(u_longlong_t)bp->blk_cksum.zc_word[3]);
+ zio_wait(ck_zio);
} else {
printf("error %d reading block\n", error);
}