From mboxrd@z Thu Jan 1 00:00:00 1970 From: jeremie.galarneau@efficios.com (=?UTF-8?Q?J=C3=A9r=C3=A9mie_Galarneau?=) Date: Thu, 6 Oct 2016 10:46:58 -0400 Subject: [lttng-dev] [PATCH lttng-tools 1/2] Fix: handle backward compatibility with lttng-modules 2.7 In-Reply-To: <1475686460-7561-1-git-send-email-mathieu.desnoyers@efficios.com> References: <1475686460-7561-1-git-send-email-mathieu.desnoyers@efficios.com> Message-ID: Merged in master and stable-2.8. Thanks! Jérémie On 5 October 2016 at 12:54, Mathieu Desnoyers wrote: > There is no major version bump between lttng-module 2.7 and 2.8 ABI. > Even though we do not guarantee compatibility, do a best effort to > maintain it when possible. > > Signed-off-by: Mathieu Desnoyers > --- > src/common/kernel-consumer/kernel-consumer.c | 38 +++++++++++++++++++++++----- > 1 file changed, 32 insertions(+), 6 deletions(-) > > diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c > index 65dcce4..a8abcd7 100644 > --- a/src/common/kernel-consumer/kernel-consumer.c > +++ b/src/common/kernel-consumer/kernel-consumer.c > @@ -1085,15 +1085,27 @@ static int get_index_values(struct ctf_packet_index *index, int infd) > > ret = kernctl_get_instance_id(infd, &index->stream_instance_id); > if (ret < 0) { > - PERROR("kernctl_get_instance_id"); > - goto error; > + if (ret == -ENOTTY) { > + /* Command not implemented by lttng-modules. */ > + index->stream_instance_id = -1ULL; > + ret = 0; > + } else { > + PERROR("kernctl_get_instance_id"); > + goto error; > + } > } > index->stream_instance_id = htobe64(index->stream_instance_id); > > ret = kernctl_get_sequence_number(infd, &index->packet_seq_num); > if (ret < 0) { > - PERROR("kernctl_get_sequence_number"); > - goto error; > + if (ret == -ENOTTY) { > + /* Command not implemented by lttng-modules. */ > + index->packet_seq_num = -1ULL; > + ret = 0; > + } else { > + PERROR("kernctl_get_sequence_number"); > + goto error; > + } > } > index->packet_seq_num = htobe64(index->packet_seq_num); > > @@ -1145,8 +1157,14 @@ int update_stream_stats(struct lttng_consumer_stream *stream) > > ret = kernctl_get_sequence_number(stream->wait_fd, &seq); > if (ret < 0) { > - PERROR("kernctl_get_sequence_number"); > - goto end; > + if (ret == -ENOTTY) { > + /* Command not implemented by lttng-modules. */ > + seq = -1ULL; > + ret = 0; > + } else { > + PERROR("kernctl_get_sequence_number"); > + goto end; > + } > } > > /* > @@ -1205,6 +1223,14 @@ int metadata_stream_check_version(int infd, struct lttng_consumer_stream *stream > > ret = kernctl_get_metadata_version(infd, &cur_version); > if (ret < 0) { > + if (ret == -ENOTTY) { > + /* > + * LTTng-modules does not implement this > + * command. > + */ > + ret = 0; > + goto end; > + } > ERR("Failed to get the metadata version"); > goto end; > } > -- > 2.1.4 > -- Jérémie Galarneau EfficiOS Inc. http://www.efficios.com