Change consumer_data_pipe to be a lttng_pipe
[lttng-tools.git] / src / common / kernel-consumer / kernel-consumer.c
index 385af875a2d9b69aeeff6c58f5dcf8017338e16d..d8aec492f774a4c3a2fb1b6bcc0bf3f64a587b3e 100644 (file)
@@ -34,7 +34,9 @@
 #include <common/sessiond-comm/sessiond-comm.h>
 #include <common/sessiond-comm/relayd.h>
 #include <common/compat/fcntl.h>
+#include <common/pipe.h>
 #include <common/relayd/relayd.h>
+#include <common/utils.h>
 
 #include "kernel-consumer.h"
 
@@ -261,7 +263,9 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
                        pthread_mutex_lock(&relayd->ctrl_sock_mutex);
                        ret = relayd_add_stream(&relayd->control_sock,
                                        new_stream->name, new_stream->chan->pathname,
-                                       &new_stream->relayd_stream_id);
+                                       &new_stream->relayd_stream_id,
+                                       new_stream->chan->tracefile_size,
+                                       new_stream->chan->tracefile_count);
                        pthread_mutex_unlock(&relayd->ctrl_sock_mutex);
                        if (ret < 0) {
                                consumer_del_stream(new_stream, NULL);
@@ -286,7 +290,7 @@ int lttng_kconsumer_recv_cmd(struct lttng_consumer_local_data *ctx,
                if (new_stream->metadata_flag) {
                        stream_pipe = ctx->consumer_metadata_pipe[1];
                } else {
-                       stream_pipe = ctx->consumer_data_pipe[1];
+                       stream_pipe = lttng_pipe_get_writefd(ctx->consumer_data_pipe);
                }
 
                do {
@@ -506,10 +510,16 @@ int lttng_kconsumer_on_recv_stream(struct lttng_consumer_stream *stream)
 
        assert(stream);
 
-       ret = lttng_create_output_file(stream);
-       if (ret < 0) {
-               ERR("Creating output file");
-               goto error;
+       /* Don't create anything if this is set for streaming. */
+       if (stream->net_seq_idx == (uint64_t) -1ULL) {
+               ret = utils_create_stream_file(stream->chan->pathname, stream->name,
+                               stream->chan->tracefile_size, stream->tracefile_count_current,
+                               stream->uid, stream->gid);
+               if (ret < 0) {
+                       goto error;
+               }
+               stream->out_fd = ret;
+               stream->tracefile_size_current = 0;
        }
 
        if (stream->output == LTTNG_EVENT_MMAP) {
This page took 0.025063 seconds and 4 git commands to generate.