struct blk_io_trace *bit;
struct rb_node rb_node;
struct trace *next;
- int skipped;
};
static struct rb_root rb_sort_root;
}
}
-static int check_sequence(struct per_dev_info *pdi, struct trace *t)
+static int check_sequence(struct per_dev_info *pdi, struct trace *t, int force)
{
unsigned long expected_sequence = pdi->last_sequence + 1;
struct blk_io_trace *bit = t->bit;
__put_trace_last(pdi, __t);
return 0;
+ } else if (!force) {
+ return 1;
} else {
skip:
- if (!t->skipped)
- return 1;
-
- t->skipped = 1;
-
if (print_missing) {
fprintf(stderr, "(%d,%d): skipping %lu -> %u\n",
MAJOR(pdi->dev), MINOR(pdi->dev),
break;
}
- if (!force) {
- if (check_sequence(pdi, t))
- break;
+ if (check_sequence(pdi, t, force))
+ break;
- if (bit->time > last_allowed_time)
- break;
- }
+ if (!force && bit->time > last_allowed_time)
+ break;
pdi->last_sequence = bit->sequence;