-struct asio_request *
-asio_get_writeback(struct asio_queue *q)
-{
- while (q->allocated_writebacks >= q->max_writebacks)
- {
- DBG("ASIO: Waiting for free writeback request");
- if (!asio_raw_wait(q))
- ASSERT(0);
- }
- q->allocated_writebacks++;
- struct asio_request *r = asio_get(q);
- r->op = ASIO_WRITE_BACK;
- return r;
-}
-
-void
-asio_turn_to_writeback(struct asio_request *r)
-{
- struct asio_queue *q = r->queue;
- ASSERT(r->op != ASIO_WRITE_BACK);
- while (q->allocated_writebacks >= q->max_writebacks)
- {
- DBG("ASIO: Waiting for free writeback request");
- if (!asio_raw_wait(q))
- ASSERT(0);
- }
- q->allocated_writebacks++;
- r->op = ASIO_WRITE_BACK;
-}
-