fix wrong offset for VERIFY_PATTERN_NO_HDR
authorOleg Krasnov <ko-85@bk.ru>
Sun, 28 Jan 2024 18:24:02 +0000 (18:24 +0000)
committerOleg Krasnov <ko-85@bk.ru>
Sun, 28 Jan 2024 20:45:56 +0000 (20:45 +0000)
verify.c

index 78f333e67e3c0cfa87ff0d19c7f98ab54c18ccab..3e0294435b3e393fc08c0f8260c133eab7c111df 100644 (file)
--- a/verify.c
+++ b/verify.c
@@ -338,12 +338,20 @@ static void dump_verify_buffers(struct verify_header *hdr, struct vcont *vc)
 static void log_verify_failure(struct verify_header *hdr, struct vcont *vc)
 {
        unsigned long long offset;
+       uint32_t len;
+       struct thread_data *td = vc->td;
 
        offset = vc->io_u->verify_offset;
-       offset += vc->hdr_num * hdr->len;
+       if (td->o.verify != VERIFY_PATTERN_NO_HDR) {
+               len = hdr->len;
+               offset += vc->hdr_num * len;
+       } else {
+               len = vc->io_u->buflen;
+       }
+
        log_err("%.8s: verify failed at file %s offset %llu, length %u"
                        " (requested block: offset=%llu, length=%llu, flags=%x)\n",
-                       vc->name, vc->io_u->file->file_name, offset, hdr->len,
+                       vc->name, vc->io_u->file->file_name, offset, len,
                        vc->io_u->verify_offset, vc->io_u->buflen, vc->io_u->flags);
 
        if (vc->good_crc && vc->bad_crc) {