projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Cleanup generic_file_open()
[fio.git]
/
verify.c
diff --git
a/verify.c
b/verify.c
index f1ac43bf1b9018e48664d16724ee906f5ca052ed..47335107452a13dee3cded9fc2fe5907e1d3cb14 100644
(file)
--- a/
verify.c
+++ b/
verify.c
@@
-129,6
+129,9
@@
void populate_verify_io_u(struct thread_data *td, struct io_u *io_u)
unsigned char *p = (unsigned char *) io_u->buf;
struct verify_header hdr;
unsigned char *p = (unsigned char *) io_u->buf;
struct verify_header hdr;
+ if (td->o.verify == VERIFY_NULL)
+ return;
+
hdr.fio_magic = FIO_HDR_MAGIC;
hdr.len = io_u->buflen;
p += sizeof(hdr);
hdr.fio_magic = FIO_HDR_MAGIC;
hdr.len = io_u->buflen;
p += sizeof(hdr);
@@
-147,8
+150,7
@@
void populate_verify_io_u(struct thread_data *td, struct io_u *io_u)
int get_next_verify(struct thread_data *td, struct io_u *io_u)
{
int get_next_verify(struct thread_data *td, struct io_u *io_u)
{
- struct io_piece *ipo;
- struct rb_node *n;
+ struct io_piece *ipo = NULL;
/*
* this io_u is from a requeue, we already filled the offsets
/*
* this io_u is from a requeue, we already filled the offsets
@@
-156,12
+158,17
@@
int get_next_verify(struct thread_data *td, struct io_u *io_u)
if (io_u->file)
return 0;
if (io_u->file)
return 0;
- n = rb_first(&td->io_hist_tree);
- if (n) {
- ipo = rb_entry(n, struct io_piece, rb_node);
+ if (!RB_EMPTY_ROOT(&td->io_hist_tree)) {
+ struct rb_node *n = rb_first(&td->io_hist_tree);
+ ipo = rb_entry(n, struct io_piece, rb_node);
rb_erase(n, &td->io_hist_tree);
rb_erase(n, &td->io_hist_tree);
+ } else if (!list_empty(&td->io_hist_list)) {
+ ipo = list_entry(td->io_hist_list.next, struct io_piece, list);
+ list_del(&ipo->list);
+ }
+ if (ipo) {
io_u->offset = ipo->offset;
io_u->buflen = ipo->len;
io_u->file = ipo->file;
io_u->offset = ipo->offset;
io_u->buflen = ipo->len;
io_u->file = ipo->file;