log_err("crc32: wanted %lx, got %lx\n", hdr->crc32, c);
return 1;
}
log_err("crc32: wanted %lx, got %lx\n", hdr->crc32, c);
return 1;
}
md5_update(&md5_ctx, p, hdr->len - sizeof(*hdr));
if (memcmp(hdr->md5_digest, md5_ctx.hash, sizeof(md5_ctx.hash))) {
md5_update(&md5_ctx, p, hdr->len - sizeof(*hdr));
if (memcmp(hdr->md5_digest, md5_ctx.hash, sizeof(md5_ctx.hash))) {
hexdump(hdr->md5_digest, sizeof(hdr->md5_digest));
hexdump(md5_ctx.hash, sizeof(md5_ctx.hash));
return 1;
hexdump(hdr->md5_digest, sizeof(hdr->md5_digest));
hexdump(md5_ctx.hash, sizeof(md5_ctx.hash));
return 1;
if (hdr->verify_type == VERIFY_MD5)
ret = verify_io_u_md5(hdr, io_u);
else if (hdr->verify_type == VERIFY_CRC32)
ret = verify_io_u_crc32(hdr, io_u);
else {
if (hdr->verify_type == VERIFY_MD5)
ret = verify_io_u_md5(hdr, io_u);
else if (hdr->verify_type == VERIFY_CRC32)
ret = verify_io_u_crc32(hdr, io_u);
else {
if (!list_empty(&td->io_hist_list)) {
ipo = list_entry(td->io_hist_list.next, struct io_piece, list);
if (!list_empty(&td->io_hist_list)) {
ipo = list_entry(td->io_hist_list.next, struct io_piece, list);