summaryrefslogtreecommitdiff
path: root/usr/src/cmd/zstreamdump
diff options
context:
space:
mode:
authorLori Alt <Lori.Alt@Sun.COM>2009-12-22 11:52:16 -0700
committerLori Alt <Lori.Alt@Sun.COM>2009-12-22 11:52:16 -0700
commit8e7144747a94247ce9dbb4fb1f67bdcb666b30d8 (patch)
tree5624b50bb13fbc0588437bc48ec70b1246ee152b /usr/src/cmd/zstreamdump
parent28a15eaab7ad89ed5b34701629093dc36c21f5f0 (diff)
downloadillumos-joyent-8e7144747a94247ce9dbb4fb1f67bdcb666b30d8.tar.gz
6907006 zfs over-the-wire dedup recalculates checksums unnecessarily
Diffstat (limited to 'usr/src/cmd/zstreamdump')
-rw-r--r--usr/src/cmd/zstreamdump/zstreamdump.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/usr/src/cmd/zstreamdump/zstreamdump.c b/usr/src/cmd/zstreamdump/zstreamdump.c
index 649d3e68bc..07151cb3bc 100644
--- a/usr/src/cmd/zstreamdump/zstreamdump.c
+++ b/usr/src/cmd/zstreamdump/zstreamdump.c
@@ -91,7 +91,7 @@ main(int argc, char *argv[])
char c;
boolean_t verbose = B_FALSE;
boolean_t first = B_TRUE;
- int i, err;
+ int err;
zio_cksum_t zc = { 0 };
zio_cksum_t pcksum = { 0 };
@@ -308,14 +308,20 @@ main(int argc, char *argv[])
drrw->drr_offset = BSWAP_64(drrw->drr_offset);
drrw->drr_length = BSWAP_64(drrw->drr_length);
drrw->drr_toguid = BSWAP_64(drrw->drr_toguid);
+ drrw->drr_key.ddk_prop =
+ BSWAP_64(drrw->drr_key.ddk_prop);
}
if (verbose) {
(void) printf("WRITE object = %llu type = %u "
- "offset = %llu length = %llu\n",
+ "checksum type = %u\n"
+ "offset = %llu length = %llu "
+ "props = %llx\n",
(u_longlong_t)drrw->drr_object,
drrw->drr_type,
+ drrw->drr_checksumtype,
(u_longlong_t)drrw->drr_offset,
- (u_longlong_t)drrw->drr_length);
+ (u_longlong_t)drrw->drr_length,
+ (u_longlong_t)drrw->drr_key.ddk_prop);
}
(void) ssread(buf, drrw->drr_length, &zc);
total_write_size += drrw->drr_length;
@@ -337,13 +343,18 @@ main(int argc, char *argv[])
BSWAP_64(drrwbr->drr_refobject);
drrwbr->drr_refoffset =
BSWAP_64(drrwbr->drr_refoffset);
+ drrwbr->drr_key.ddk_prop =
+ BSWAP_64(drrwbr->drr_key.ddk_prop);
}
if (verbose) {
(void) printf("WRITE_BYREF object = %llu "
+ "checksum type = %u props = %llx\n"
"offset = %llu length = %llu\n"
"toguid = %llx refguid = %llx\n"
"refobject = %llu refoffset = %llu\n",
(u_longlong_t)drrwbr->drr_object,
+ drrwbr->drr_checksumtype,
+ (u_longlong_t)drrwbr->drr_key.ddk_prop,
(u_longlong_t)drrwbr->drr_offset,
(u_longlong_t)drrwbr->drr_length,
(u_longlong_t)drrwbr->drr_toguid,