Fix: streamline ret/errno of run_as()
[lttng-tools.git] / src / bin / lttng-sessiond / ust-consumer.c
index 78e50df43fab90dab22892095f85050e1b1d2e11..27ebf7d23270a6ad4a5a1e13f3eb971573a2455a 100644 (file)
@@ -73,7 +73,7 @@ static char *setup_trace_path(struct consumer_output *consumer,
                ret = run_as_mkdir_recursive(pathname, S_IRWXU | S_IRWXG,
                                ua_sess->euid, ua_sess->egid);
                if (ret < 0) {
-                       if (ret != -EEXIST) {
+                       if (errno != EEXIST) {
                                ERR("Trace directory creation error");
                                goto error;
                        }
@@ -245,14 +245,13 @@ int ust_consumer_ask_channel(struct ust_app_session *ua_sess,
        }
 
        pthread_mutex_lock(socket->lock);
-
        ret = ask_channel_creation(ua_sess, ua_chan, consumer, socket, registry);
+       pthread_mutex_unlock(socket->lock);
        if (ret < 0) {
                goto error;
        }
 
 error:
-       pthread_mutex_unlock(socket->lock);
        return ret;
 }
 
@@ -511,12 +510,15 @@ int ust_consumer_metadata_request(struct consumer_socket *socket)
        pthread_mutex_lock(&ust_reg->lock);
        ret_push = ust_app_push_metadata(ust_reg, socket, 1);
        pthread_mutex_unlock(&ust_reg->lock);
-       if (ret_push < 0) {
+       if (ret_push == -EPIPE) {
+               DBG("Application or relay closed while pushing metadata");
+       } else if (ret_push < 0) {
                ERR("Pushing metadata");
                ret = -1;
                goto end;
+       } else {
+               DBG("UST Consumer metadata pushed successfully");
        }
-       DBG("UST Consumer metadata pushed successfully");
        ret = 0;
 
 end:
This page took 0.023724 seconds and 4 git commands to generate.