projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: lttng list of channels should return errors
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
cmd.c
diff --git
a/src/bin/lttng-sessiond/cmd.c
b/src/bin/lttng-sessiond/cmd.c
index c4e4ccfbe5e0098c0d7e6a9da50e56b5a9b4795f..9e761958a19ffc1138f62186c9ddecc47b9515c4 100644
(file)
--- a/
src/bin/lttng-sessiond/cmd.c
+++ b/
src/bin/lttng-sessiond/cmd.c
@@
-243,11
+243,11
@@
end:
/*
* Fill lttng_channel array of all channels.
*/
/*
* Fill lttng_channel array of all channels.
*/
-static
void
list_lttng_channels(enum lttng_domain_type domain,
+static
ssize_t
list_lttng_channels(enum lttng_domain_type domain,
struct ltt_session *session, struct lttng_channel *channels,
struct lttng_channel_extended *chan_exts)
{
struct ltt_session *session, struct lttng_channel *channels,
struct lttng_channel_extended *chan_exts)
{
- int i = 0, ret;
+ int i = 0, ret
= 0
;
struct ltt_kernel_channel *kchan;
DBG("Listing channels for session %s", session->name);
struct ltt_kernel_channel *kchan;
DBG("Listing channels for session %s", session->name);
@@
-322,6
+322,9
@@
static void list_lttng_channels(enum lttng_domain_type domain,
break;
}
break;
}
+ chan_exts[i].monitor_timer_interval =
+ uchan->monitor_timer_interval;
+
ret = get_ust_runtime_stats(session, uchan,
&discarded_events, &lost_packets);
if (ret < 0) {
ret = get_ust_runtime_stats(session, uchan,
&discarded_events, &lost_packets);
if (ret < 0) {
@@
-329,8
+332,6
@@
static void list_lttng_channels(enum lttng_domain_type domain,
}
chan_exts[i].discarded_events = discarded_events;
chan_exts[i].lost_packets = lost_packets;
}
chan_exts[i].discarded_events = discarded_events;
chan_exts[i].lost_packets = lost_packets;
- chan_exts[i].monitor_timer_interval =
- uchan->monitor_timer_interval;
i++;
}
rcu_read_unlock();
i++;
}
rcu_read_unlock();
@@
-341,7
+342,11
@@
static void list_lttng_channels(enum lttng_domain_type domain,
}
end:
}
end:
- return;
+ if (ret < 0) {
+ return -LTTNG_ERR_FATAL;
+ } else {
+ return LTTNG_OK;
+ }
}
static void increment_extended_len(const char *filter_expression,
}
static void increment_extended_len(const char *filter_expression,
@@
-2936,7
+2941,12
@@
ssize_t cmd_list_channels(enum lttng_domain_type domain,
channel_exts = ((void *) *channels) +
(nb_chan * sizeof(struct lttng_channel));
channel_exts = ((void *) *channels) +
(nb_chan * sizeof(struct lttng_channel));
- list_lttng_channels(domain, session, *channels, channel_exts);
+ ret = list_lttng_channels(domain, session, *channels, channel_exts);
+ if (ret != LTTNG_OK) {
+ free(*channels);
+ *channels = NULL;
+ goto end;
+ }
} else {
*channels = NULL;
}
} else {
*channels = NULL;
}
This page took
0.024191 seconds
and
4
git commands to generate.