projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update version to 2.0-pre17
[lttng-tools.git]
/
liblttng-ustconsumer
/
lttng-ustconsumer.c
diff --git
a/liblttng-ustconsumer/lttng-ustconsumer.c
b/liblttng-ustconsumer/lttng-ustconsumer.c
index efb6be42490812d45f911b7f650254264efdc57f..10213c1c97dcb8b4d93a80895a0e56d7ed9297db 100644
(file)
--- a/
liblttng-ustconsumer/lttng-ustconsumer.c
+++ b/
liblttng-ustconsumer/lttng-ustconsumer.c
@@
-34,6
+34,8
@@
#include <lttng/ust-ctl.h>
#include <lttngerr.h>
#include <lttng/ust-ctl.h>
#include <lttngerr.h>
+#include "common/runas.h"
+
extern struct lttng_consumer_global_data consumer_data;
extern int consumer_poll_timeout;
extern volatile int consumer_quit;
extern struct lttng_consumer_global_data consumer_data;
extern int consumer_poll_timeout;
extern volatile int consumer_quit;
@@
-277,11
+279,8
@@
int lttng_ustconsumer_allocate_channel(struct lttng_consumer_channel *chan)
if (!chan->handle) {
return -ENOMEM;
}
if (!chan->handle) {
return -ENOMEM;
}
- /*
- * The channel fds are passed to ustctl, we only keep a copy.
- */
- chan->shm_fd_is_copy = 1;
chan->wait_fd_is_copy = 1;
chan->wait_fd_is_copy = 1;
+ chan->shm_fd = -1;
return 0;
}
return 0;
}
@@
-312,15
+311,14
@@
int lttng_ustconsumer_allocate_stream(struct lttng_consumer_stream *stream)
stream->buf = ustctl_open_stream_read(stream->chan->handle, stream->cpu);
if (!stream->buf)
return -EBUSY;
stream->buf = ustctl_open_stream_read(stream->chan->handle, stream->cpu);
if (!stream->buf)
return -EBUSY;
+ /* ustctl_open_stream_read has closed the shm fd. */
+ stream->wait_fd_is_copy = 1;
+ stream->shm_fd = -1;
+
stream->mmap_base = ustctl_get_mmap_base(stream->chan->handle, stream->buf);
if (!stream->mmap_base) {
return -EINVAL;
}
stream->mmap_base = ustctl_get_mmap_base(stream->chan->handle, stream->buf);
if (!stream->mmap_base) {
return -EINVAL;
}
- /*
- * The stream fds are passed to ustctl, we only keep a copy.
- */
- stream->shm_fd_is_copy = 1;
- stream->wait_fd_is_copy = 1;
return 0;
}
return 0;
}
@@
-397,19
+395,16
@@
int lttng_ustconsumer_on_recv_stream(struct lttng_consumer_stream *stream)
/* Opening the tracefile in write mode */
if (stream->path_name != NULL) {
/* Opening the tracefile in write mode */
if (stream->path_name != NULL) {
- ret = open(stream->path_name,
- O_WRONLY|O_CREAT|O_TRUNC, S_IRWXU|S_IRWXG|S_IRWXO);
+ ret = run_as_open(stream->path_name,
+ O_WRONLY|O_CREAT|O_TRUNC,
+ S_IRWXU|S_IRWXG|S_IRWXO,
+ stream->uid, stream->gid);
if (ret < 0) {
ERR("Opening %s", stream->path_name);
perror("open");
goto error;
}
stream->out_fd = ret;
if (ret < 0) {
ERR("Opening %s", stream->path_name);
perror("open");
goto error;
}
stream->out_fd = ret;
- ret = chown(stream->path_name, stream->uid, stream->gid);
- if (ret < 0) {
- ERR("Changing ownership of %s", stream->path_name);
- perror("chown");
- }
}
/* we return 0 to let the library handle the FD internally */
}
/* we return 0 to let the library handle the FD internally */
This page took
0.024439 seconds
and
4
git commands to generate.