X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=liblttng-ust%2Flttng-ring-buffer-client.h;h=6ed067105d8e7fd0f8a280e3f09caa0375186836;hb=a49a7e686059ce795ce678b42cc109b7a2b1d91e;hp=e5640b2ea0e4e7096e8729e975f75141b0892692;hpb=ce7352a2d029c4cad9fed5e8288568225366152e;p=lttng-ust.git diff --git a/liblttng-ust/lttng-ring-buffer-client.h b/liblttng-ust/lttng-ring-buffer-client.h index e5640b2e..6ed06710 100644 --- a/liblttng-ust/lttng-ring-buffer-client.h +++ b/liblttng-ust/lttng-ring-buffer-client.h @@ -715,8 +715,16 @@ int lttng_event_reserve(struct lttng_ust_lib_ring_buffer_ctx *ctx, } ret = lib_ring_buffer_reserve(&client_config, ctx); - if (ret) + if (caa_unlikely(ret)) goto put; + 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)) { + ret = -EPERM; + goto put; + } + } lttng_write_event_header(&client_config, ctx, event_id); return 0; put: