projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add mmap client mode
[lttng-modules.git]
/
ltt-events.c
diff --git
a/ltt-events.c
b/ltt-events.c
index a94e8f9a1dde6a6e315133e59c66e3659455f99d..e9e076d802238bc07e1aef14e0bb4f1e2914df6b 100644
(file)
--- a/
ltt-events.c
+++ b/
ltt-events.c
@@
-14,7
+14,7
@@
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/jiffies.h>
#include <linux/sched.h>
#include <linux/slab.h>
#include <linux/jiffies.h>
-#include
<linux/uuid.h>
+#include
"wrapper/uuid.h"
#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */
#include "ltt-events.h"
#include "ltt-tracer.h"
#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */
#include "ltt-events.h"
#include "ltt-tracer.h"
@@
-34,8
+34,6
@@
int _ltt_event_metadata_statedump(struct ltt_session *session,
static
int _ltt_session_metadata_statedump(struct ltt_session *session);
static
int _ltt_session_metadata_statedump(struct ltt_session *session);
-
-static
void synchronize_trace(void)
{
synchronize_sched();
void synchronize_trace(void)
{
synchronize_sched();
@@
-108,12
+106,9
@@
int ltt_session_enable(struct ltt_session *session)
ACCESS_ONCE(session->active) = 1;
ACCESS_ONCE(session->been_active) = 1;
ACCESS_ONCE(session->active) = 1;
ACCESS_ONCE(session->been_active) = 1;
- synchronize_trace(); /* Wait for in-flight events to complete */
ret = _ltt_session_metadata_statedump(session);
ret = _ltt_session_metadata_statedump(session);
- if (ret)
{
+ if (ret)
ACCESS_ONCE(session->active) = 0;
ACCESS_ONCE(session->active) = 0;
- synchronize_trace(); /* Wait for in-flight events to complete */
- }
end:
mutex_unlock(&sessions_mutex);
return ret;
end:
mutex_unlock(&sessions_mutex);
return ret;
@@
-129,7
+124,6
@@
int ltt_session_disable(struct ltt_session *session)
goto end;
}
ACCESS_ONCE(session->active) = 0;
goto end;
}
ACCESS_ONCE(session->active) = 0;
- synchronize_trace(); /* Wait for in-flight events to complete */
end:
mutex_unlock(&sessions_mutex);
return ret;
end:
mutex_unlock(&sessions_mutex);
return ret;
@@
-139,6
+133,8
@@
int ltt_channel_enable(struct ltt_channel *channel)
{
int old;
{
int old;
+ if (channel == channel->session->metadata)
+ return -EPERM;
old = xchg(&channel->enabled, 1);
if (old)
return -EEXIST;
old = xchg(&channel->enabled, 1);
if (old)
return -EEXIST;
@@
-149,6
+145,8
@@
int ltt_channel_disable(struct ltt_channel *channel)
{
int old;
{
int old;
+ if (channel == channel->session->metadata)
+ return -EPERM;
old = xchg(&channel->enabled, 0);
if (!old)
return -EEXIST;
old = xchg(&channel->enabled, 0);
if (!old)
return -EEXIST;
@@
-159,6
+157,8
@@
int ltt_event_enable(struct ltt_event *event)
{
int old;
{
int old;
+ if (event->chan == event->chan->session->metadata)
+ return -EPERM;
old = xchg(&event->enabled, 1);
if (old)
return -EEXIST;
old = xchg(&event->enabled, 1);
if (old)
return -EEXIST;
@@
-169,6
+169,8
@@
int ltt_event_disable(struct ltt_event *event)
{
int old;
{
int old;
+ if (event->chan == event->chan->session->metadata)
+ return -EPERM;
old = xchg(&event->enabled, 0);
if (!old)
return -EEXIST;
old = xchg(&event->enabled, 0);
if (!old)
return -EEXIST;
This page took
0.037029 seconds
and
4
git commands to generate.