*
* Returns 0 on success, < 0 on error
*/
-int lttng_kconsumer_snapshot_channel(struct lttng_consumer_channel *channel,
- uint64_t key, char *path, uint64_t relayd_id, uint64_t nb_packets_per_stream,
+static int lttng_kconsumer_snapshot_channel(
+ struct lttng_consumer_channel *channel,
+ uint64_t key, char *path, uint64_t relayd_id,
+ uint64_t nb_packets_per_stream,
struct lttng_consumer_local_data *ctx)
{
int ret;
/* Splice is not supported yet for channel snapshot. */
if (channel->output != CONSUMER_CHANNEL_MMAP) {
- ERR("Unsupported output %d", channel->output);
+ ERR("Unsupported output type for channel \"%s\": mmap output is required to record a snapshot",
+ channel->name);
ret = -1;
goto end;
}
produced_pos, nb_packets_per_stream,
stream->max_sb_size);
- while (consumed_pos < produced_pos) {
+ while ((long) (consumed_pos - produced_pos) < 0) {
ssize_t read_len;
unsigned long len, padded_len;
if (pending < 0) {
/*
- * An error occured while running the command;
+ * An error occurred while running the command;
* don't send the 'pending' flag as the sessiond
* will not read it.
*/
if (pending < 0) {
/*
- * An error occured while running the command;
+ * An error occurred while running the command;
* don't send the 'pending' flag as the sessiond
* will not read it.
*/