Fix: event notification capture error handling
[lttng-ust.git] / src / lib / lttng-ust-ctl / ustctl.c
index 46a1c89dee6f568a21188c12c840fe79222280be..0e6dc06edfa51ba6eea1e7e7519e805d5a2c5a5a 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * SPDX-License-Identifier: GPL-2.0-only
  *
- * Copyright (C) 2011 Julien Desfossez <julien.desfossez@polymtl.ca>
+ * Copyright (C) 2011 EfficiOS Inc.
  * Copyright (C) 2011-2013 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  */
 
@@ -394,15 +394,15 @@ int lttng_ust_ctl_add_context(int sock, struct lttng_ust_context_attr *ctx,
        }
        ret = ustcomm_recv_app_reply(sock, &lur, lum.handle, lum.cmd);
        if (ret < 0) {
+               if (ret == -EINVAL) {
+                       /*
+                        * Command unknown from remote end. The communication socket is
+                        * now out-of-sync and needs to be shutdown.
+                        */
+                       (void) ustcomm_shutdown_unix_sock(sock);
+               }
                goto end;
-       } else if (ret == -EINVAL) {
-               /*
-                * Command unknown from remote end. The communication socket is
-                * now out-of-sync and needs to be shutdown.
-                */
-               (void) ustcomm_shutdown_unix_sock(sock);
        }
-
        context_data->handle = -1;
        DBG("Context created successfully");
        *_context_data = context_data;
@@ -1257,7 +1257,7 @@ int lttng_ust_ctl_duplicate_ust_object_data(struct lttng_ust_abi_object_data **d
                        obj->u.channel.wakeup_fd =
                                dup(src->u.channel.wakeup_fd);
                        if (obj->u.channel.wakeup_fd < 0) {
-                               ret = errno;
+                               ret = -errno;
                                goto chan_error_wakeup_fd;
                        }
                } else {
@@ -1293,7 +1293,7 @@ int lttng_ust_ctl_duplicate_ust_object_data(struct lttng_ust_abi_object_data **d
                        obj->u.stream.wakeup_fd =
                                dup(src->u.stream.wakeup_fd);
                        if (obj->u.stream.wakeup_fd < 0) {
-                               ret = errno;
+                               ret = -errno;
                                goto stream_error_wakeup_fd;
                        }
                } else {
@@ -1305,7 +1305,7 @@ int lttng_ust_ctl_duplicate_ust_object_data(struct lttng_ust_abi_object_data **d
                        obj->u.stream.shm_fd =
                                dup(src->u.stream.shm_fd);
                        if (obj->u.stream.shm_fd < 0) {
-                               ret = errno;
+                               ret = -errno;
                                goto stream_error_shm_fd;
                        }
                } else {
@@ -1344,7 +1344,7 @@ int lttng_ust_ctl_duplicate_ust_object_data(struct lttng_ust_abi_object_data **d
                        obj->u.counter_global.shm_fd =
                                dup(src->u.counter_global.shm_fd);
                        if (obj->u.counter_global.shm_fd < 0) {
-                               ret = errno;
+                               ret = -errno;
                                goto error_type;
                        }
                }
@@ -1358,7 +1358,7 @@ int lttng_ust_ctl_duplicate_ust_object_data(struct lttng_ust_abi_object_data **d
                        obj->u.counter_cpu.shm_fd =
                                dup(src->u.counter_cpu.shm_fd);
                        if (obj->u.counter_cpu.shm_fd < 0) {
-                               ret = errno;
+                               ret = -errno;
                                goto error_type;
                        }
                }
@@ -1384,7 +1384,7 @@ error:
 
 int lttng_ust_ctl_get_nr_stream_per_channel(void)
 {
-       return num_possible_cpus();
+       return get_possible_cpus_array_len();
 }
 
 struct lttng_ust_ctl_consumer_channel *
@@ -2901,7 +2901,7 @@ int lttng_ust_ctl_regenerate_statedump(int sock, int handle)
 
 int lttng_ust_ctl_get_nr_cpu_per_counter(void)
 {
-       return num_possible_cpus();
+       return get_possible_cpus_array_len();
 }
 
 struct lttng_ust_ctl_daemon_counter *
This page took 0.02536 seconds and 4 git commands to generate.