- int ret = 0;
- char *tmp_data_ptr;
- unsigned int new_size, old_size;
-
- assert(channel);
- assert(channel->metadata_cache);
-
- old_size = channel->metadata_cache->cache_alloc_size;
- new_size = max_t(unsigned int, old_size + size, old_size << 1);
- DBG("Extending metadata cache to %u", new_size);
- tmp_data_ptr = realloc(channel->metadata_cache->data, new_size);
- if (!tmp_data_ptr) {
- ERR("Reallocating metadata cache");
- free(channel->metadata_cache->data);
- ret = -1;
+ const int ret = lttng_dynamic_buffer_set_size(&cache->contents, 0);
+
+ LTTNG_ASSERT(ret == 0);
+}
+
+/*
+ * Check if the metadata cache version changed.
+ * If it did, reset the metadata cache.
+ * The metadata cache lock MUST be held.
+ */
+static enum metadata_cache_update_version_status metadata_cache_update_version(
+ struct consumer_metadata_cache *cache, uint64_t version)
+{
+ enum metadata_cache_update_version_status status;
+
+ if (cache->version == version) {
+ status = METADATA_CACHE_UPDATE_STATUS_VERSION_NOT_UPDATED;