perf header: Allow header->data_offset to be predetermined
authorAdrian Hunter <adrian.hunter@intel.com>
Wed, 11 Dec 2013 12:36:28 +0000 (14:36 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
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 <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1386765443-26966-17-git-send-email-alexander.shishkin@linux.intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
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) {