Fix: tracepoint listing misses last loaded probe
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 23 Oct 2015 21:17:43 +0000 (17:17 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Fri, 23 Oct 2015 21:36:10 +0000 (17:36 -0400)
The seqfile iteration listing tracepoints operates on the probe list
directly, without going through the lttng_get_probe_list_head()
accessor which ensures that the lazy list of probes is moved to the
actual list of probes.

This causes an issue when loading a probe and then listing the
tracepoints when no tracing sessions are active: the last probe loaded
is missing from the listing.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
lttng-probes.c

index ee75e33d7881f9528043dd492a63351ef73714de..0385a79cdf94d780b6ca0b88809b263fb3e0296b 100644 (file)
@@ -251,10 +251,12 @@ static
 void *tp_list_start(struct seq_file *m, loff_t *pos)
 {
        struct lttng_probe_desc *probe_desc;
+       struct list_head *probe_list;
        int iter = 0, i;
 
        lttng_lock_sessions();
-       list_for_each_entry(probe_desc, &_probe_list, head) {
+       probe_list = lttng_get_probe_list_head();
+       list_for_each_entry(probe_desc, probe_list, head) {
                for (i = 0; i < probe_desc->nr_events; i++) {
                        if (iter++ >= *pos)
                                return (void *) probe_desc->event_desc[i];
@@ -268,10 +270,12 @@ static
 void *tp_list_next(struct seq_file *m, void *p, loff_t *ppos)
 {
        struct lttng_probe_desc *probe_desc;
+       struct list_head *probe_list;
        int iter = 0, i;
 
        (*ppos)++;
-       list_for_each_entry(probe_desc, &_probe_list, head) {
+       probe_list = lttng_get_probe_list_head();
+       list_for_each_entry(probe_desc, probe_list, head) {
                for (i = 0; i < probe_desc->nr_events; i++) {
                        if (iter++ >= *ppos)
                                return (void *) probe_desc->event_desc[i];
This page took 0.050608 seconds and 4 git commands to generate.