aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-record.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-record.c')
-rw-r--r--tools/perf/builtin-record.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 9900b433e861..404ab3434052 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -208,7 +208,7 @@ static int process_buildids(struct record *rec)
208 struct perf_data_file *file = &rec->file; 208 struct perf_data_file *file = &rec->file;
209 struct perf_session *session = rec->session; 209 struct perf_session *session = rec->session;
210 210
211 u64 size = lseek(file->fd, 0, SEEK_CUR); 211 u64 size = lseek(perf_data_file__fd(file), 0, SEEK_CUR);
212 if (size == 0) 212 if (size == 0)
213 return 0; 213 return 0;
214 214
@@ -334,6 +334,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
334 struct perf_data_file *file = &rec->file; 334 struct perf_data_file *file = &rec->file;
335 struct perf_session *session; 335 struct perf_session *session;
336 bool disabled = false, draining = false; 336 bool disabled = false, draining = false;
337 int fd;
337 338
338 rec->progname = argv[0]; 339 rec->progname = argv[0];
339 340
@@ -348,6 +349,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
348 return -1; 349 return -1;
349 } 350 }
350 351
352 fd = perf_data_file__fd(file);
351 rec->session = session; 353 rec->session = session;
352 354
353 record__init_features(rec); 355 record__init_features(rec);
@@ -372,12 +374,11 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
372 perf_header__clear_feat(&session->header, HEADER_GROUP_DESC); 374 perf_header__clear_feat(&session->header, HEADER_GROUP_DESC);
373 375
374 if (file->is_pipe) { 376 if (file->is_pipe) {
375 err = perf_header__write_pipe(file->fd); 377 err = perf_header__write_pipe(fd);
376 if (err < 0) 378 if (err < 0)
377 goto out_child; 379 goto out_child;
378 } else { 380 } else {
379 err = perf_session__write_header(session, rec->evlist, 381 err = perf_session__write_header(session, rec->evlist, fd, false);
380 file->fd, false);
381 if (err < 0) 382 if (err < 0)
382 goto out_child; 383 goto out_child;
383 } 384 }
@@ -409,7 +410,7 @@ static int __cmd_record(struct record *rec, int argc, const char **argv)
409 * return this more properly and also 410 * return this more properly and also
410 * propagate errors that now are calling die() 411 * propagate errors that now are calling die()
411 */ 412 */
412 err = perf_event__synthesize_tracing_data(tool, file->fd, rec->evlist, 413 err = perf_event__synthesize_tracing_data(tool, fd, rec->evlist,
413 process_synthesized_event); 414 process_synthesized_event);
414 if (err <= 0) { 415 if (err <= 0) {
415 pr_err("Couldn't record tracing data.\n"); 416 pr_err("Couldn't record tracing data.\n");
@@ -545,8 +546,7 @@ out_child:
545 546
546 if (!rec->no_buildid) 547 if (!rec->no_buildid)
547 process_buildids(rec); 548 process_buildids(rec);
548 perf_session__write_header(rec->session, rec->evlist, 549 perf_session__write_header(rec->session, rec->evlist, fd, true);
549 file->fd, true);
550 } 550 }
551 551
552 if (!err && !quiet) { 552 if (!err && !quiet) {