X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fust-consumer%2Fust-consumer.c;h=c8ba084606180790b51fc7d11ba8ea5075f019c4;hp=5f5e9582574011577297bf36123a64958a752793;hb=4078b776c9382a540125d810bcd7cca3a8c84bc8;hpb=ca4537d385628d3568a918409d909d3042ca7a38 diff --git a/src/common/ust-consumer/ust-consumer.c b/src/common/ust-consumer/ust-consumer.c index 5f5e95825..c8ba08460 100644 --- a/src/common/ust-consumer/ust-consumer.c +++ b/src/common/ust-consumer/ust-consumer.c @@ -19,19 +19,20 @@ #define _GNU_SOURCE #include -#include #include #include #include #include #include #include +#include #include #include #include #include #include +#include #include "ust-consumer.h" @@ -42,9 +43,9 @@ extern volatile int consumer_quit; /* * Mmap the ring buffer, read it and write the data to the tracefile. * - * Returns the number of bytes written + * Returns the number of bytes written, else negative value on error. */ -int lttng_ustconsumer_on_read_subbuffer_mmap( +ssize_t lttng_ustconsumer_on_read_subbuffer_mmap( struct lttng_consumer_local_data *ctx, struct lttng_consumer_stream *stream, unsigned long len) { @@ -57,7 +58,7 @@ int lttng_ustconsumer_on_read_subbuffer_mmap( ret = ustctl_get_mmap_read_offset(stream->chan->handle, stream->buf, &mmap_offset); if (ret != 0) { - ret = -errno; + errno = -ret; perror("ustctl_get_mmap_read_offset"); goto end; } @@ -66,12 +67,12 @@ int lttng_ustconsumer_on_read_subbuffer_mmap( if (ret >= len) { len = 0; } else if (ret < 0) { - ret = -errno; + errno = -ret; perror("Error in file write"); goto end; } /* This won't block, but will start writeout asynchronously */ - sync_file_range(outfd, stream->out_fd_offset, ret, + lttng_sync_file_range(outfd, stream->out_fd_offset, ret, SYNC_FILE_RANGE_WRITE); stream->out_fd_offset += ret; } @@ -89,7 +90,7 @@ end: * * Returns the number of bytes spliced. */ -int lttng_ustconsumer_on_read_subbuffer_splice( +ssize_t lttng_ustconsumer_on_read_subbuffer_splice( struct lttng_consumer_local_data *ctx, struct lttng_consumer_stream *stream, unsigned long len) { @@ -108,7 +109,7 @@ int lttng_ustconsumer_take_snapshot(struct lttng_consumer_local_data *ctx, ret = ustctl_snapshot(stream->chan->handle, stream->buf); if (ret != 0) { - ret = errno; + errno = -ret; perror("Getting sub-buffer snapshot."); } @@ -130,7 +131,7 @@ int lttng_ustconsumer_get_produced_snapshot( ret = ustctl_snapshot_get_produced(stream->chan->handle, stream->buf, pos); if (ret != 0) { - ret = errno; + errno = -ret; perror("kernctl_snapshot_get_produced"); } @@ -346,7 +347,7 @@ int lttng_ustconsumer_read_subbuffer(struct lttng_consumer_stream *stream, if (!stream->hangup_flush_done) { do { readlen = read(stream->wait_fd, &dummy, 1); - } while (readlen == -1 && errno == -EINTR); + } while (readlen == -1 && errno == EINTR); if (readlen == -1) { ret = readlen; goto end;