X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=log.c;h=0614b277c1e9de3752b977c284aa2531f9581049;hp=2b90f452e8c22bca740b235ebb26094a12892574;hb=bb5d7d0b5bde867690590aaa61d77307d773107f;hpb=4b87898e8d76aaf05baec83077a11311c1447397 diff --git a/log.c b/log.c index 2b90f452..0614b277 100644 --- a/log.c +++ b/log.c @@ -48,7 +48,7 @@ void log_io_piece(struct thread_data *td, struct io_u *io_u) struct io_piece *ipo, *__ipo; ipo = malloc(sizeof(struct io_piece)); - memset(&ipo->rb_node, 0, sizeof(ipo->rb_node)); + RB_CLEAR_NODE(&ipo->rb_node); ipo->file = io_u->file; ipo->offset = io_u->offset; ipo->len = io_u->buflen; @@ -60,12 +60,10 @@ void log_io_piece(struct thread_data *td, struct io_u *io_u) parent = *p; __ipo = rb_entry(parent, struct io_piece, rb_node); - if (ipo->offset < __ipo->offset) + if (ipo->offset <= __ipo->offset) p = &(*p)->rb_left; - else if (ipo->offset > __ipo->offset) - p = &(*p)->rb_right; else - break; + p = &(*p)->rb_right; } rb_link_node(&ipo->rb_node, parent, p); @@ -113,7 +111,7 @@ static int init_iolog_read(struct thread_data *td) reads++; else if (rw == DDIR_WRITE) writes++; - else { + else if (rw != DDIR_SYNC) { log_err("bad ddir: %d\n", rw); continue; }