X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-app.c;h=f0af340770ca59bd98ddda1d48e0ffd4d01bd262;hp=4066b065c0a0b45185e0f18b18820bde9f344c73;hb=890d8fe47755c3bad936389cf48ffa141cff41c9;hpb=2106efa08d11229241a114d1d71635a02006690e diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 4066b065c..f0af34077 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -15,7 +15,6 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#define _GNU_SOURCE #define _LGPL_SOURCE #include #include @@ -3482,7 +3481,9 @@ int ust_app_list_events(struct lttng_event **events) } free(tmp_event); release_ret = ustctl_release_handle(app->sock, handle); - if (release_ret != -LTTNG_UST_ERR_EXITING && release_ret != -EPIPE) { + if (release_ret < 0 && + release_ret != -LTTNG_UST_ERR_EXITING && + release_ret != -EPIPE) { ERR("Error releasing app handle for app %d with ret %d", app->sock, release_ret); } pthread_mutex_unlock(&app->sock_lock); @@ -3507,7 +3508,9 @@ int ust_app_list_events(struct lttng_event **events) free(tmp_event); ret = -ENOMEM; release_ret = ustctl_release_handle(app->sock, handle); - if (release_ret != -LTTNG_UST_ERR_EXITING && release_ret != -EPIPE) { + if (release_ret < 0 && + release_ret != -LTTNG_UST_ERR_EXITING && + release_ret != -EPIPE) { ERR("Error releasing app handle for app %d with ret %d", app->sock, release_ret); } pthread_mutex_unlock(&app->sock_lock); @@ -3528,7 +3531,7 @@ int ust_app_list_events(struct lttng_event **events) } ret = ustctl_release_handle(app->sock, handle); pthread_mutex_unlock(&app->sock_lock); - if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) { + if (ret < 0 && ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) { ERR("Error releasing app handle for app %d with ret %d", app->sock, ret); } } @@ -3610,7 +3613,9 @@ int ust_app_list_event_fields(struct lttng_event_field **fields) free(tmp_event); release_ret = ustctl_release_handle(app->sock, handle); pthread_mutex_unlock(&app->sock_lock); - if (release_ret != -LTTNG_UST_ERR_EXITING && release_ret != -EPIPE) { + if (release_ret < 0 && + release_ret != -LTTNG_UST_ERR_EXITING && + release_ret != -EPIPE) { ERR("Error releasing app handle for app %d with ret %d", app->sock, release_ret); } goto rcu_error; @@ -3635,7 +3640,9 @@ int ust_app_list_event_fields(struct lttng_event_field **fields) ret = -ENOMEM; release_ret = ustctl_release_handle(app->sock, handle); pthread_mutex_unlock(&app->sock_lock); - if (release_ret != -LTTNG_UST_ERR_EXITING && release_ret != -EPIPE) { + if (release_ret && + release_ret != -LTTNG_UST_ERR_EXITING && + release_ret != -EPIPE) { ERR("Error releasing app handle for app %d with ret %d", app->sock, release_ret); } goto rcu_error; @@ -3661,7 +3668,9 @@ int ust_app_list_event_fields(struct lttng_event_field **fields) } ret = ustctl_release_handle(app->sock, handle); pthread_mutex_unlock(&app->sock_lock); - if (ret != -LTTNG_UST_ERR_EXITING && ret != -EPIPE) { + if (ret < 0 && + ret != -LTTNG_UST_ERR_EXITING && + ret != -EPIPE) { ERR("Error releasing app handle for app %d with ret %d", app->sock, ret); } } @@ -3873,7 +3882,7 @@ int ust_app_disable_event_glb(struct ltt_ust_session *usess, { int ret = 0; struct lttng_ht_iter iter, uiter; - struct lttng_ht_node_str *ua_chan_node, *ua_event_node; + struct lttng_ht_node_str *ua_chan_node; struct ust_app *app; struct ust_app_session *ua_sess; struct ust_app_channel *ua_chan; @@ -3910,14 +3919,14 @@ int ust_app_disable_event_glb(struct ltt_ust_session *usess, } ua_chan = caa_container_of(ua_chan_node, struct ust_app_channel, node); - lttng_ht_lookup(ua_chan->events, (void *)uevent->attr.name, &uiter); - ua_event_node = lttng_ht_iter_get_node_str(&uiter); - if (ua_event_node == NULL) { + ua_event = find_ust_app_event(ua_chan->events, uevent->attr.name, + uevent->filter, uevent->attr.loglevel, + uevent->exclusion); + if (ua_event == NULL) { DBG2("Event %s not found in channel %s for app pid %d." "Skipping", uevent->attr.name, uchan->name, app->pid); continue; } - ua_event = caa_container_of(ua_event_node, struct ust_app_event, node); ret = disable_ust_app_event(ua_sess, ua_event, app); if (ret < 0) {