diff --git a/src/backend/storage/aio/read_stream.c b/src/backend/storage/aio/read_stream.c index 04bdb5e6d4..18e9b4f3c4 100644 --- a/src/backend/storage/aio/read_stream.c +++ b/src/backend/storage/aio/read_stream.c @@ -666,6 +666,8 @@ read_stream_next_buffer(ReadStream *stream, void **per_buffer_data) READ_BUFFERS_ISSUE_ADVICE : 0))) { /* Fast return. */ + if (per_buffer_data) + *per_buffer_data = get_per_buffer_data(stream, oldest_buffer_index); return buffer; } @@ -682,9 +684,14 @@ read_stream_next_buffer(ReadStream *stream, void **per_buffer_data) stream->distance = 0; stream->oldest_buffer_index = stream->next_buffer_index; stream->pinned_buffers = 0; + oldest_buffer_index = stream->next_buffer_index; } stream->fast_path = false; + + if (per_buffer_data) + *per_buffer_data = get_per_buffer_data(stream, oldest_buffer_index); + return buffer; } #endif