From: Mathieu Desnoyers Date: Wed, 3 Jul 2013 22:33:37 +0000 (-0400) Subject: Fix: ring buffer: get_subbuf() checks should be performed on "consumed" parameter X-Git-Tag: v2.3.0-rc1~9 X-Git-Url: http://git.lttng.org/?p=lttng-ust.git;a=commitdiff_plain;h=0bade047c6b695d7ab0df693d54e9d46d81bc8ee Fix: ring buffer: get_subbuf() checks should be performed on "consumed" parameter This triggers lots of false-positive -EAGAIN errors in flight recorder snapshots. Reported-by: Julien Desfossez Signed-off-by: Mathieu Desnoyers --- diff --git a/libringbuffer/ring_buffer_frontend.c b/libringbuffer/ring_buffer_frontend.c index 2bce0d1d..e99ba8a5 100644 --- a/libringbuffer/ring_buffer_frontend.c +++ b/libringbuffer/ring_buffer_frontend.c @@ -1107,7 +1107,7 @@ retry: */ if (((commit_count - chan->backend.subbuf_size) & chan->commit_count_mask) - - (buf_trunc(consumed_cur, chan) + - (buf_trunc(consumed, chan) >> chan->backend.num_subbuf_order) != 0) goto nodata; @@ -1116,7 +1116,7 @@ retry: * Check that we are not about to read the same subbuffer in * which the writer head is. */ - if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed_cur, chan) + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed, chan) == 0) goto nodata;