projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a check avoid segfault
[fio.git]
/
iolog.c
diff --git
a/iolog.c
b/iolog.c
index c1764bac76f8e56568d77af112353d31ccc3d12f..12f09d0ec019b075625fd6a4f016337657c9e151 100644
(file)
--- a/
iolog.c
+++ b/
iolog.c
@@
-176,12
+176,6
@@
void prune_io_piece_log(struct thread_data *td)
}
}
}
}
-static void dump_ipo(struct io_piece *ipo, const char *msg)
-{
- printf("%s\n", msg);
- printf("\toffset %llu, len %lu, fl %x, ddir %d\n", ipo->offset, ipo->len, ipo->flags, ipo->ddir);
-}
-
/*
* log a successful write, so we can unwind the log for verify
*/
/*
* log a successful write, so we can unwind the log for verify
*/
@@
-245,12
+239,9
@@
restart:
else if (ipo->offset > __ipo->offset)
p = &(*p)->rb_right;
else {
else if (ipo->offset > __ipo->offset)
p = &(*p)->rb_right;
else {
- if (ipo->len != __ipo->len) {
- log_err("fio: unexpected ipo overlap!\n");
- log_err("fio: please report this issue.\n");
- dump_ipo(ipo, "ipo");
- dump_ipo(__ipo, "__ipo");
- }
+ dprint(FD_IO, "iolog: overlap %llu/%lu, %llu/%lu",
+ __ipo->offset, __ipo->len,
+ ipo->offset, ipo->len);
td->io_hist_len--;
rb_erase(parent, &td->io_hist_tree);
remove_trim_entry(td, __ipo);
td->io_hist_len--;
rb_erase(parent, &td->io_hist_tree);
remove_trim_entry(td, __ipo);