}
static void
-XLogFileInitComplete(void *pgsw_private, void *write_private)
+XLogFileInitComplete(void *pgsw_private, PgAioInProgress *aio, void *write_private)
{
}
} BulkExtendBufferedState;
static void
-bulk_extend_undirty_complete(void *pgsw_private, void *write_private)
+bulk_extend_undirty_complete(void *pgsw_private, PgAioInProgress *aio, void *write_private)
{
BulkExtendBufferedState *be_state = (BulkExtendBufferedState * ) pgsw_private;
BulkExtendOneBuffer *ex_buf = (BulkExtendOneBuffer *) write_private;
}
static void
-buffer_sync_complete(void *pgsw_private, void *write_private)
+buffer_sync_complete(void *pgsw_private, PgAioInProgress *aio, void *write_private)
{
WritebackContext *wb_context = (WritebackContext *) pgsw_private;
BufferDesc *bufHdr = (BufferDesc *) write_private;
dlist_push_tail(&pgsw->available, &this_write->node);
/* call callback after all other handling so it can issue IO */
- pgsw->on_completion(pgsw->private_data, private_data);
+ pgsw->on_completion(pgsw->private_data, io, private_data);
ereport(DEBUG3, errmsg("complete %zu", this_write - pgsw->all_items),
errhidestmt(true),
}
static void
-zeroextend_complete(void *pgsw_private, void *write_private)
+zeroextend_complete(void *pgsw_private, PgAioInProgress *aio, void *write_private)
{
BlockNumber *latest = (BlockNumber *) write_private;
}
* Helper to efficiently perform bulk writes.
*/
typedef struct pg_streaming_write pg_streaming_write;
-typedef void (*pg_streaming_write_completed)(void *pgsw_private, void *write_private);
+typedef void (*pg_streaming_write_completed)(void *pgsw_private, PgAioInProgress *aio, void *write_private);
extern pg_streaming_write *pg_streaming_write_alloc(uint32 iodepth, void *private,
pg_streaming_write_completed on_completion);