X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;ds=inline;f=liblttng-ust%2Flttng-ring-buffer-metadata-client.h;h=af5162f6e8cd23d944f92555c95146205016da22;hb=3f5339b0d6f76158b858ea4467a0f1a0ada9e65e;hp=f3c4a67c8843ea0e9514ff994e04ed16ef979c08;hpb=8ca68914bea06267bce3cacdec8c821a7821e1a9;p=lttng-ust.git diff --git a/liblttng-ust/lttng-ring-buffer-metadata-client.h b/liblttng-ust/lttng-ring-buffer-metadata-client.h index f3c4a67c..af5162f6 100644 --- a/liblttng-ust/lttng-ring-buffer-metadata-client.h +++ b/liblttng-ust/lttng-ring-buffer-metadata-client.h @@ -240,7 +240,18 @@ void lttng_channel_destroy(struct lttng_channel *chan) static int lttng_event_reserve(struct lttng_ust_lib_ring_buffer_ctx *ctx, uint32_t event_id) { - return lib_ring_buffer_reserve(&client_config, ctx); + int ret; + + ret = lib_ring_buffer_reserve(&client_config, ctx); + if (ret) + return ret; + if (caa_likely(ctx->ctx_len + >= sizeof(struct lttng_ust_lib_ring_buffer_ctx))) { + if (lib_ring_buffer_backend_get_pages(&client_config, ctx, + &ctx->backend_pages)) + return -EPERM; + } + return 0; } static