X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Fconsumer-stream.c;h=745de050d6dd4f7c805d37ec2f1221092fed17ac;hb=bac6245e1e5e337077ca246104fa23f382ae7063;hp=808cae236ded5d142a6c5b962b27e760c41eac2a;hpb=94d4914075c61cd1ee2ec00d8b61eacff105fc47;p=lttng-tools.git diff --git a/src/common/consumer-stream.c b/src/common/consumer-stream.c index 808cae236..745de050d 100644 --- a/src/common/consumer-stream.c +++ b/src/common/consumer-stream.c @@ -331,7 +331,7 @@ void consumer_stream_destroy(struct lttng_consumer_stream *stream, * Return 0 on success or else a negative value. */ int consumer_stream_write_index(struct lttng_consumer_stream *stream, - struct lttng_packet_index *index) + struct ctf_packet_index *index) { int ret; struct consumer_relayd_sock_pair *relayd; @@ -342,11 +342,20 @@ int consumer_stream_write_index(struct lttng_consumer_stream *stream, rcu_read_lock(); relayd = consumer_find_relayd(stream->net_seq_idx); if (relayd) { + pthread_mutex_lock(&relayd->ctrl_sock_mutex); ret = relayd_send_index(&relayd->control_sock, index, stream->relayd_stream_id, stream->next_net_seq_num - 1); + pthread_mutex_unlock(&relayd->ctrl_sock_mutex); } else { - ret = index_write(stream->index_fd, index, - sizeof(struct lttng_packet_index)); + ssize_t size_ret; + + size_ret = index_write(stream->index_fd, index, + sizeof(struct ctf_packet_index)); + if (size_ret < sizeof(struct ctf_packet_index)) { + ret = -1; + } else { + ret = 0; + } } if (ret < 0) { goto error;