From: Mathieu Desnoyers Date: Wed, 5 Oct 2016 16:54:19 +0000 (-0400) Subject: Fix: handle backward compatibility with lttng-modules 2.7 X-Git-Tag: v2.8.2~8 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=912a3957d3c8dfd82d6fee3aaed0454d98529630;p=lttng-tools.git Fix: handle backward compatibility with lttng-modules 2.7 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 Signed-off-by: Jérémie Galarneau --- diff --git a/src/common/kernel-consumer/kernel-consumer.c b/src/common/kernel-consumer/kernel-consumer.c index 68dcc0230..f89ab1a6e 100644 --- a/src/common/kernel-consumer/kernel-consumer.c +++ b/src/common/kernel-consumer/kernel-consumer.c @@ -1095,15 +1095,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); @@ -1155,8 +1167,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; + } } /* @@ -1215,6 +1233,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; }