Fix: ring buffer: get_subbuf() checks should be performed on "consumed" parameter
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 3 Jul 2013 22:33:37 +0000 (18:33 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 3 Jul 2013 22:35:47 +0000 (18:35 -0400)
This triggers lots of false-positive -EAGAIN errors in flight recorder
snapshots.

Reported-by: Julien Desfossez <jdesfossez@efficios.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
libringbuffer/ring_buffer_frontend.c

index 866403756cb99bc21882432027e98a223a2f8e89..2639750fd22b578467e31662c5da3d829214ca24 100644 (file)
@@ -824,7 +824,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;
@@ -833,7 +833,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;
 
This page took 0.030303 seconds and 4 git commands to generate.