aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-01-18 13:14:25 -0500
committerSteven Rostedt <rostedt@goodmis.org>2010-01-18 13:14:25 -0500
commit7ad960c1cc3ca0e73abc1ecfc97c46f46ba04197 (patch)
tree204e1d86c1dce506667213fccc410ad8de3cdab9
parent8863e82fd8276a8150df7faf16f8ce7d327f0c3f (diff)
trace-cmd: Cache tracing_on file descriptor
Cache the tracing_on file descriptor to have the disable_tracing() be able to shut down tracing without having to reopen the tracing_on file. Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r--trace-cmd.c45
1 files changed, 24 insertions, 21 deletions
diff --git a/trace-cmd.c b/trace-cmd.c
index 8839e74..a073017 100644
--- a/trace-cmd.c
+++ b/trace-cmd.c
@@ -459,34 +459,37 @@ static void disable_event(const char *name)
459 fclose(fp); 459 fclose(fp);
460} 460}
461 461
462static void enable_tracing(void) 462static void write_tracing_on(int on)
463{ 463{
464 FILE *fp; 464 static int fd = -1;
465 char *path; 465 char *path;
466 int ret;
466 467
467 /* reset the trace */ 468 if (fd < 0) {
468 path = get_tracing_file("tracing_on"); 469 path = get_tracing_file("tracing_on");
469 fp = fopen(path, "w"); 470 fd = open(path, O_WRONLY);
470 if (!fp) 471 if (fd < 0)
471 die("writing to '%s'", path); 472 die("opening '%s'", path);
472 put_tracing_file(path); 473 put_tracing_file(path);
473 fwrite("1", 1, 1, fp); 474 }
474 fclose(fp); 475
476 if (on)
477 ret = write(fd, "1", 1);
478 else
479 ret = write(fd, "0", 1);
480
481 if (ret < 0)
482 die("writing 'tracing_on'");
475} 483}
476 484
477static void disable_tracing(void) 485static void enable_tracing(void)
478{ 486{
479 FILE *fp; 487 write_tracing_on(1);
480 char *path; 488}
481 489
482 /* reset the trace */ 490static void disable_tracing(void)
483 path = get_tracing_file("tracing_on"); 491{
484 fp = fopen(path, "w"); 492 write_tracing_on(0);
485 if (!fp)
486 die("writing to '%s'", path);
487 put_tracing_file(path);
488 fwrite("0", 1, 1, fp);
489 fclose(fp);
490} 493}
491 494
492static void disable_all(void) 495static void disable_all(void)