projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
t/zbd: avoid test case 31 failure with small devices
[fio.git]
/
verify.c
diff --git
a/verify.c
b/verify.c
index e7e4c69ca66ee6b76ee1ad087ebdc2e42ba5c181..b2fede24710fd3fcedfbcda890b3b9def9a957be 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;
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->io_u->verify_offset;
- offset += vc->hdr_num * hdr->len;
+ if (td->o.verify != VERIFY_PATTERN_NO_HDR) {
+ len = hdr->len;
+ offset += (unsigned long long) 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",
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) {
vc->io_u->verify_offset, vc->io_u->buflen, vc->io_u->flags);
if (vc->good_crc && vc->bad_crc) {
@@
-398,7
+406,8
@@
static int verify_io_u_pattern(struct verify_header *hdr, struct vcont *vc)
(unsigned char)buf[i],
(unsigned char)pattern[mod],
bits);
(unsigned char)buf[i],
(unsigned char)pattern[mod],
bits);
- log_err("fio: bad pattern block offset %u\n", i);
+ log_err("fio: bad pattern block offset %u\n",
+ i + header_size);
vc->name = "pattern";
log_verify_failure(hdr, vc);
return EILSEQ;
vc->name = "pattern";
log_verify_failure(hdr, vc);
return EILSEQ;
@@
-1595,8
+1604,7
@@
struct all_io_list *get_all_io_list(int save_mask, size_t *sz)
*sz = sizeof(*rep);
*sz += nr * sizeof(struct thread_io_list);
*sz += depth * sizeof(struct file_comp);
*sz = sizeof(*rep);
*sz += nr * sizeof(struct thread_io_list);
*sz += depth * sizeof(struct file_comp);
- rep = malloc(*sz);
- memset(rep, 0, *sz);
+ rep = calloc(1, *sz);
rep->threads = cpu_to_le64((uint64_t) nr);
rep->threads = cpu_to_le64((uint64_t) nr);
@@
-1611,8
+1619,8
@@
struct all_io_list *get_all_io_list(int save_mask, size_t *sz)
comps = fill_file_completions(td, s, &index);
s->no_comps = cpu_to_le64((uint64_t) comps);
comps = fill_file_completions(td, s, &index);
s->no_comps = cpu_to_le64((uint64_t) comps);
- s->depth = cpu_to_le
64((uint64
_t) td->o.iodepth);
- s->nofiles = cpu_to_le
64((uint64
_t) td->o.nr_files);
+ s->depth = cpu_to_le
32((uint32
_t) td->o.iodepth);
+ s->nofiles = cpu_to_le
32((uint32
_t) td->o.nr_files);
s->numberio = cpu_to_le64((uint64_t) td->io_issues[DDIR_WRITE]);
s->index = cpu_to_le64((uint64_t) __td_index);
if (td->random_state.use64) {
s->numberio = cpu_to_le64((uint64_t) td->io_issues[DDIR_WRITE]);
s->index = cpu_to_le64((uint64_t) __td_index);
if (td->random_state.use64) {
@@
-1649,6
+1657,10
@@
static int open_state_file(const char *name, const char *prefix, int num,
else
flags = O_RDONLY;
else
flags = O_RDONLY;
+#ifdef _WIN32
+ flags |= O_BINARY;
+#endif
+
verify_state_gen_name(out, sizeof(out), name, prefix, num);
fd = open(out, flags, 0644);
verify_state_gen_name(out, sizeof(out), name, prefix, num);
fd = open(out, flags, 0644);