perf header: Allow header->data_offset to be predetermined
authorAdrian Hunter <[email protected]>
Wed, 11 Dec 2013 12:36:28 +0000 (14:36 +0200)
committerArnaldo Carvalho de Melo <[email protected]>
Fri, 13 Dec 2013 13:30:20 +0000 (10:30 -0300)
It will be necessary to predetermine header->data_offset to allow space
for attributes that are added later.  Consequently, do not change
header->data_offset if it is non-zero.

Signed-off-by: Adrian Hunter <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Mike Galbraith <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Stephane Eranian <[email protected]>
Link: http://lkml.kernel.org/r/1386765443-26966-17-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
tools/perf/util/header.c

index 0bb830f6b49c47d0110a0bf6fa6d8bf9122c2106..61c54213704b812d2dca1ac824029ebd0c7848e6 100644 (file)
@@ -2327,7 +2327,8 @@ int perf_session__write_header(struct perf_session *session,
                }
        }
 
-       header->data_offset = lseek(fd, 0, SEEK_CUR);
+       if (!header->data_offset)
+               header->data_offset = lseek(fd, 0, SEEK_CUR);
        header->feat_offset = header->data_offset + header->data_size;
 
        if (at_exit) {