projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix missing session list unlock
[lttng-tools.git]
/
ltt-sessiond
/
kernel-ctl.c
diff --git
a/ltt-sessiond/kernel-ctl.c
b/ltt-sessiond/kernel-ctl.c
index 95463aa50fc96c6d6dfc67b8837fc08daa507dbf..ef3afb714bf1bebe6b96376f484f15044f2e4555 100644
(file)
--- a/
ltt-sessiond/kernel-ctl.c
+++ b/
ltt-sessiond/kernel-ctl.c
@@
-3,8
+3,8
@@
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation;
either
version 2
- * of the License
, or (at your option) any later version
.
+ * as published by the Free Software Foundation;
only
version 2
+ * of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-25,7
+25,6
@@
#include <unistd.h>
#include "lttngerr.h"
#include <unistd.h>
#include "lttngerr.h"
-#include "ltt-sessiond.h"
#include "libkernelctl.h"
#include "kernel-ctl.h"
#include "libkernelctl.h"
#include "kernel-ctl.h"
@@
-125,7
+124,6
@@
int kernel_create_session(struct ltt_session *session, int tracer_fd)
lks->kconsumer_fds_sent = 0;
session->kernel_session = lks;
lks->kconsumer_fds_sent = 0;
session->kernel_session = lks;
- session->kern_session_count++;
DBG("Kernel session created (fd: %d)", lks->fd);
DBG("Kernel session created (fd: %d)", lks->fd);
@@
-141,13
+139,13
@@
error:
* Create a kernel channel, register it to the kernel tracer and add it to the
* kernel session.
*/
* Create a kernel channel, register it to the kernel tracer and add it to the
* kernel session.
*/
-int kernel_create_channel(struct ltt_kernel_session *session, struct lttng_channel *chan)
+int kernel_create_channel(struct ltt_kernel_session *session, struct lttng_channel *chan
, char *path
)
{
int ret;
struct ltt_kernel_channel *lkc;
/* Allocate kernel channel */
{
int ret;
struct ltt_kernel_channel *lkc;
/* Allocate kernel channel */
- lkc = trace_create_kernel_channel(chan);
+ lkc = trace_create_kernel_channel(chan
, path
);
if (lkc == NULL) {
goto error;
}
if (lkc == NULL) {
goto error;
}
@@
-211,6
+209,8
@@
int kernel_create_event(struct lttng_event *ev, struct ltt_kernel_channel *chann
/* Add event to event list */
cds_list_add(&event->list, &channel->events_list.head);
/* Add event to event list */
cds_list_add(&event->list, &channel->events_list.head);
+ channel->event_count++;
+
DBG("Event %s created (fd: %d)", ev->name, event->fd);
return 0;
DBG("Event %s created (fd: %d)", ev->name, event->fd);
return 0;
@@
-283,6
+283,9
@@
int kernel_enable_event(struct ltt_kernel_event *event)
ret = kernctl_enable(event->fd);
if (ret < 0) {
perror("enable event ioctl");
ret = kernctl_enable(event->fd);
if (ret < 0) {
perror("enable event ioctl");
+ if (errno == EEXIST) {
+ ret = -EEXIST;
+ }
goto error;
}
goto error;
}
@@
-325,13
+328,13
@@
error:
* Create kernel metadata, open from the kernel tracer and add it to the
* kernel session.
*/
* Create kernel metadata, open from the kernel tracer and add it to the
* kernel session.
*/
-int kernel_open_metadata(struct ltt_kernel_session *session)
+int kernel_open_metadata(struct ltt_kernel_session *session
, char *path
)
{
int ret;
struct ltt_kernel_metadata *lkm;
/* Allocate kernel metadata */
{
int ret;
struct ltt_kernel_metadata *lkm;
/* Allocate kernel metadata */
- lkm = trace_create_kernel_metadata();
+ lkm = trace_create_kernel_metadata(
path
);
if (lkm == NULL) {
goto error;
}
if (lkm == NULL) {
goto error;
}
@@
-491,8
+494,8
@@
int kernel_open_channel_stream(struct ltt_kernel_channel *channel)
perror("fcntl session fd");
}
perror("fcntl session fd");
}
- ret = asprintf(&lks->pathname, "%s/
trace
_%d",
- channel->pathname, channel->stream_count);
+ ret = asprintf(&lks->pathname, "%s/
%s
_%d",
+ channel->pathname, channel->
channel->name, channel->
stream_count);
if (ret < 0) {
perror("asprintf kernel create stream");
goto error;
if (ret < 0) {
perror("asprintf kernel create stream");
goto error;
This page took
0.027094 seconds
and
5
git commands to generate.