Update licensing info
[lttng-modules.git] / ltt-probes.c
index e1ed2a3108d591a795f371affecbc1c7421294cb..45d2dabdef22e977fe8122deeb9a5417aa07fc21 100644 (file)
@@ -4,6 +4,8 @@
  * Copyright 2010 (c) - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * Holds LTTng probes registry.
+ *
+ * Dual LGPL v2.1/GPL v2 license.
  */
 
 #include <linux/module.h>
@@ -90,6 +92,7 @@ void *tp_list_start(struct seq_file *m, loff_t *pos)
        struct lttng_probe_desc *probe_desc;
        int iter = 0, i;
 
+       mutex_lock(&probe_mutex);
        list_for_each_entry(probe_desc, &probe_list, head) {
                for (i = 0; i < probe_desc->nr_events; i++) {
                        if (iter++ >= *pos)
@@ -120,6 +123,7 @@ void *tp_list_next(struct seq_file *m, void *p, loff_t *ppos)
 static
 void tp_list_stop(struct seq_file *m, void *p)
 {
+       mutex_unlock(&probe_mutex);
 }
 
 static
@@ -127,6 +131,11 @@ int tp_list_show(struct seq_file *m, void *p)
 {
        const struct lttng_event_desc *probe_desc = p;
 
+       /*
+        * Don't export lttng internal events (metadata).
+        */
+       if (!strncmp(probe_desc->name, "lttng_", sizeof("lttng_") - 1))
+               return 0;
        seq_printf(m,   "event { name = %s; };\n",
                   probe_desc->name);
        return 0;
@@ -150,5 +159,5 @@ const struct file_operations lttng_tracepoint_list_fops = {
        .open = lttng_tracepoint_list_open,
        .read = seq_read,
        .llseek = seq_lseek,
-       .release = seq_release_private,
+       .release = seq_release,
 };
This page took 0.023942 seconds and 4 git commands to generate.