From afd669d6bde01020259ec57298c8335bc2542e4a Mon Sep 17 00:00:00 2001 From: shishir gowda Date: Wed, 8 May 2013 17:37:00 +0530 Subject: statedump: Print entries in cb buffer in FIFO order Currently cb buffer was being printed in LIFO order, which is was against the percieved notion of logs having older entries printed before newer entries in the state dumps. Re-did the loop to prevent crash as when w_index == 0, we would access cb[w_index - 1]. Change-Id: Idd085f73fa6937e506a2a1925e42fbcfd2d9bb1c BUG: 966847 Signed-off-by: shishir gowda Reviewed-on: http://review.gluster.org/4968 Reviewed-by: Santosh Pradhan Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- libglusterfs/src/circ-buff.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'libglusterfs') diff --git a/libglusterfs/src/circ-buff.c b/libglusterfs/src/circ-buff.c index 65bbd5d4..d3d740a4 100644 --- a/libglusterfs/src/circ-buff.c +++ b/libglusterfs/src/circ-buff.c @@ -97,15 +97,14 @@ cb_buffer_dump (buffer_t *buffer, void *data, pthread_mutex_lock (&buffer->lock); { if (buffer->use_once == _gf_false) { - for (i = (buffer->w_index - 1) ; entries < - buffer->used_len ; entries++) { + i = buffer->w_index; + for (entries = 0; entries < buffer->used_len; + entries++) { entry = buffer->cb[i]; if (entry) fn (entry, data); - if (0 == i) - i = buffer->used_len - 1; - else - i = (i - 1) % (buffer->used_len - 1); + i++; + i %= buffer->size_buffer; } } else { for (i = 0; i < buffer->used_len ; i++) { -- cgit