Clean-up: fix comment type in lttng-consumerd.c
[lttng-tools.git] / src / common / kernel-consumer / kernel-consumer.c
index d03ff701533fdab938082a1d551efdeff4140428..d5418dcdabb0217873baf94dc11c15c8af96566d 100644 (file)
@@ -1315,12 +1315,34 @@ ssize_t lttng_kconsumer_read_subbuffer(struct lttng_consumer_stream *stream,
                }
                ret = update_stream_stats(stream);
                if (ret < 0) {
+                       err = kernctl_put_subbuf(infd);
+                       if (err != 0) {
+                               if (err == -EFAULT) {
+                                       PERROR("Error in unreserving sub buffer\n");
+                               } else if (err == -EIO) {
+                                       /* Should never happen with newer LTTng versions */
+                                       PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
+                               }
+                               ret = err;
+                               goto end;
+                       }
                        goto end;
                }
        } else {
                write_index = 0;
                ret = metadata_stream_check_version(infd, stream);
                if (ret < 0) {
+                       err = kernctl_put_subbuf(infd);
+                       if (err != 0) {
+                               if (err == -EFAULT) {
+                                       PERROR("Error in unreserving sub buffer\n");
+                               } else if (err == -EIO) {
+                                       /* Should never happen with newer LTTng versions */
+                                       PERROR("Reader has been pushed by the writer, last sub-buffer corrupted.");
+                               }
+                               ret = err;
+                               goto end;
+                       }
                        goto end;
                }
        }
@@ -1485,6 +1507,7 @@ int lttng_kconsumer_on_recv_stream(struct lttng_consumer_stream *stream)
                        if (!index_file) {
                                goto error;
                        }
+                       assert(!stream->index_file);
                        stream->index_file = index_file;
                }
        }
This page took 0.025871 seconds and 5 git commands to generate.