sessiond: use `loglevel_value` and `loglevel_type` names
[lttng-tools.git] / src / bin / lttng-sessiond / trace-ust.c
index b4dcfe37dde72ca66ed573cf50571a0f46c1bfe4..8da942f01c8d9a7bc835804adf57f542edd7b062 100644 (file)
@@ -70,12 +70,14 @@ int trace_ust_ht_match_event(struct cds_lfht_node *node, const void *_key)
 {
        struct ltt_ust_event *event;
        const struct ltt_ust_ht_key *key;
+       int ev_loglevel_value;
 
        assert(node);
        assert(_key);
 
        event = caa_container_of(node, struct ltt_ust_event, node.node);
        key = _key;
+       ev_loglevel_value = event->attr.loglevel;
 
        /* Match the 4 elements of the key: name, filter, loglevel, exclusions. */
 
@@ -85,9 +87,9 @@ int trace_ust_ht_match_event(struct cds_lfht_node *node, const void *_key)
        }
 
        /* Event loglevel. */
-       if (event->attr.loglevel != key->loglevel) {
+       if (ev_loglevel_value != key->loglevel_type) {
                if (event->attr.loglevel_type == LTTNG_UST_LOGLEVEL_ALL
-                               && key->loglevel == 0 && event->attr.loglevel == -1) {
+                               && key->loglevel_type == 0 && ev_loglevel_value == -1) {
                        /*
                         * Match is accepted. This is because on event creation, the
                         * loglevel is set to -1 if the event loglevel type is ALL so 0 and
@@ -170,8 +172,8 @@ error:
  * MUST be acquired before calling this.
  */
 struct ltt_ust_event *trace_ust_find_event(struct lttng_ht *ht,
-               char *name, struct lttng_filter_bytecode *filter, int loglevel,
-               struct lttng_event_exclusion *exclusion)
+               char *name, struct lttng_filter_bytecode *filter,
+               int loglevel_value, struct lttng_event_exclusion *exclusion)
 {
        struct lttng_ht_node_str *node;
        struct lttng_ht_iter iter;
@@ -182,7 +184,7 @@ struct ltt_ust_event *trace_ust_find_event(struct lttng_ht *ht,
 
        key.name = name;
        key.filter = filter;
-       key.loglevel = loglevel;
+       key.loglevel_type = loglevel_value;
        key.exclusion = exclusion;
 
        cds_lfht_lookup(ht->ht, ht->hash_fct((void *) name, lttng_ht_seed),
@@ -787,7 +789,8 @@ int trace_ust_untrack_pid(struct ltt_ust_session *session, int pid)
                struct ust_app *app;
 
                if (!session->pid_tracker.ht) {
-                       retval = LTTNG_ERR_INVALID;
+                       /* No PID being tracked. */
+                       retval = LTTNG_ERR_PID_NOT_TRACKED;
                        goto end;
                }
                /* Remove PID from tracker */
@@ -951,11 +954,6 @@ static void _trace_ust_destroy_channel(struct ltt_ust_channel *channel)
 
        DBG2("Trace destroy UST channel %s", channel->name);
 
-       /* Destroying all events of the channel */
-       destroy_events(channel->events);
-       /* Destroying all context of the channel */
-       destroy_contexts(channel->ctx);
-
        free(channel);
 }
 
@@ -974,6 +972,11 @@ static void destroy_channel_rcu(struct rcu_head *head)
 
 void trace_ust_destroy_channel(struct ltt_ust_channel *channel)
 {
+       /* Destroying all events of the channel */
+       destroy_events(channel->events);
+       /* Destroying all context of the channel */
+       destroy_contexts(channel->ctx);
+
        call_rcu(&channel->node.head, destroy_channel_rcu);
 }
 
@@ -999,18 +1002,18 @@ void trace_ust_delete_channel(struct lttng_ht *ht,
  */
 static void destroy_channels(struct lttng_ht *channels)
 {
-       int ret;
        struct lttng_ht_node_str *node;
        struct lttng_ht_iter iter;
 
        assert(channels);
 
        rcu_read_lock();
-
        cds_lfht_for_each_entry(channels->ht, &iter.iter, node, node) {
-               ret = lttng_ht_del(channels, &iter);
-               assert(!ret);
-               call_rcu(&node->head, destroy_channel_rcu);
+               struct ltt_ust_channel *chan =
+                       caa_container_of(node, struct ltt_ust_channel, node);
+
+               trace_ust_delete_channel(channels, chan);
+               trace_ust_destroy_channel(chan);
        }
        rcu_read_unlock();
 
This page took 0.029428 seconds and 4 git commands to generate.