diff options
| author | Lori Alt <Lori.Alt@Sun.COM> | 2009-12-22 11:52:16 -0700 |
|---|---|---|
| committer | Lori Alt <Lori.Alt@Sun.COM> | 2009-12-22 11:52:16 -0700 |
| commit | 8e7144747a94247ce9dbb4fb1f67bdcb666b30d8 (patch) | |
| tree | 5624b50bb13fbc0588437bc48ec70b1246ee152b /usr/src/cmd/zstreamdump | |
| parent | 28a15eaab7ad89ed5b34701629093dc36c21f5f0 (diff) | |
| download | illumos-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.c | 17 |
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, |
