diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2009-12-14 20:09:30 -0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-12-15 08:50:29 +0100 |
commit | b38d34645cc52136b6c99623fef7ded26742e573 (patch) | |
tree | c395ed3bcda85d49f5a842f91ccca2d33a1efa5c | |
parent | c8829c7a31c7e0156b230fa8d5a14be9881d7677 (diff) |
perf record: Rename perf.data to perf.data.old if --force/-f is used
Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
LKML-Reference: <1260828571-3613-2-git-send-email-acme@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | tools/perf/builtin-record.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index a66a58d5281..66979a5553b 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -421,10 +421,19 @@ static int __cmd_record(int argc, const char **argv) signal(SIGINT, sig_handler); if (!stat(output_name, &st) && st.st_size) { - if (!force && !append_file) { - fprintf(stderr, "Error, output file %s exists, use -A to append or -f to overwrite.\n", - output_name); - exit(-1); + if (!force) { + if (!append_file) { + pr_err("Error, output file %s exists, use -A " + "to append or -f to overwrite.\n", + output_name); + exit(-1); + } + } else { + char oldname[PATH_MAX]; + snprintf(oldname, sizeof(oldname), "%s.old", + output_name); + unlink(oldname); + rename(output_name, oldname); } } else { append_file = 0; |