[PATCH] blktrace: need to free ts->buf for networked transfer
[blktrace.git] / blkrawverify.c
index 51e7963b67ed2ab51eb2ca008c39c12a9dd5dae3..238c3ab7c7c71de0da739a827bc7e801b1e9a8ef 100644 (file)
@@ -150,12 +150,21 @@ static int process(FILE *ofp, char *file, unsigned int cpu)
 
        ifp = fopen(file, "r");
        while ((n = fread(bit, sizeof(struct blk_io_trace), 1, ifp)) == 1) {
+               if (data_is_native == -1)
+                       check_data_endianness(bit->magic);
+
                trace_to_cpu(bit);
-               if (verify_trace(bit)) {
+
+               if (!CHECK_MAGIC(bit)) {
                        INC_BAD("bad trace");
                        continue;
                }
 
+               if ((bit->magic & 0xff) != SUPPORTED_VERSION) {
+                       fprintf(stderr, "unsupported trace version\n");
+                       break;
+               }
+
                if (bit->pdu_len) {
                        char *pdu_buf;
 
@@ -175,6 +184,12 @@ static int process(FILE *ofp, char *file, unsigned int cpu)
                        continue;
                }
 
+               /*
+                * skip notify traces, they don't have valid sequences
+                */
+               if (bit->action & BLK_TC_ACT(BLK_TC_NOTIFY))
+                       continue;
+
                if (ngood) {
                        if (bit->sequence <= save_sequence) {
                                INC_BAD("bad seq");