[PATCH] blkparse: old patch broke the sequence check again
authorJens Axboe <axboe@suse.de>
Wed, 5 Oct 2005 08:23:36 +0000 (10:23 +0200)
committerJens Axboe <axboe@suse.de>
Wed, 5 Oct 2005 08:23:36 +0000 (10:23 +0200)
blkparse.c

index ff3742cdc9206a4f00ed499963d7f6daa11e4b69..52a7e75f957551c1da614ddc4fa3dffc3fb76e4d 100644 (file)
@@ -185,7 +185,6 @@ struct trace {
        struct blk_io_trace *bit;
        struct rb_node rb_node;
        struct trace *next;
-       int skipped;
 };
 
 static struct rb_root rb_sort_root;
@@ -1338,7 +1337,7 @@ static void put_trace(struct per_dev_info *pdi, struct trace *t)
        }
 }
 
-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;
@@ -1364,13 +1363,10 @@ static int check_sequence(struct per_dev_info *pdi, struct trace *t)
 
                __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),
@@ -1405,13 +1401,11 @@ static void show_entries_rb(int force)
                        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;