Lines Matching refs:io

391         obj_io *io = calloc(1, sizeof(obj_io));  in extstore_init()  local
395 io->next = e->io_stack; in extstore_init()
396 e->io_stack = io; in extstore_init()
527 static void _wbuf_cb(void *ep, obj_io *io, int ret) { in _wbuf_cb() argument
529 store_page *p = &e->pages[io->page_id]; in _wbuf_cb()
530 _store_wbuf *w = (_store_wbuf *) io->data; in _wbuf_cb()
549 io->next = e->io_stack; in _wbuf_cb()
550 e->io_stack = io; in _wbuf_cb()
561 obj_io *io = e->io_stack; in _submit_wbuf() local
562 e->io_stack = io->next; in _submit_wbuf()
569 io->next = NULL; in _submit_wbuf()
570 io->mode = OBJ_IO_WRITE; in _submit_wbuf()
571 io->page_id = p->id; in _submit_wbuf()
572 io->data = w; in _submit_wbuf()
573 io->offset = w->offset; in _submit_wbuf()
574 io->len = w->size; in _submit_wbuf()
575 io->buf = w->buf; in _submit_wbuf()
576 io->cb = _wbuf_cb; in _submit_wbuf()
578 extstore_submit_bg(e, io); in _submit_wbuf()
591 unsigned int free_bucket, obj_io *io) { in extstore_write_request() argument
626 if (p->wbuf && p->wbuf->free < io->len && !p->wbuf->full) { in extstore_write_request()
637 if (p->wbuf && !p->wbuf->full && p->wbuf->free >= io->len) { in extstore_write_request()
638 io->buf = p->wbuf->buf_pos; in extstore_write_request()
639 io->page_id = p->id; in extstore_write_request()
651 void extstore_write(void *ptr, obj_io *io) { in extstore_write() argument
653 store_page *p = &e->pages[io->page_id]; in extstore_write()
655 io->offset = p->wbuf->offset + (p->wbuf->size - p->wbuf->free); in extstore_write()
656 io->page_version = p->version; in extstore_write()
657 p->wbuf->buf_pos += io->len; in extstore_write()
658 p->wbuf->free -= io->len; in extstore_write()
659 p->bytes_used += io->len; in extstore_write()
662 e->stats.bytes_written += io->len; in extstore_write()
663 e->stats.bytes_used += io->len; in extstore_write()
676 static int _extstore_submit(void *ptr, obj_io *io, store_io_thread *t) { in _extstore_submit() argument
678 obj_io *tio = io; in _extstore_submit()
690 t->queue = io; in _extstore_submit()
696 t->queue_tail->next = io; in _extstore_submit()
708 int extstore_submit(void *ptr, obj_io *io) { in extstore_submit() argument
711 return _extstore_submit(ptr, io, t); in extstore_submit()
714 int extstore_submit_bg(void *ptr, obj_io *io) { in extstore_submit_bg() argument
717 return _extstore_submit(ptr, io, t); in extstore_submit_bg()
814 static inline int _read_from_wbuf(store_page *p, obj_io *io) { in _read_from_wbuf() argument
817 assert(io->offset < p->written + wbuf->size); in _read_from_wbuf()
818 if (io->iov == NULL) { in _read_from_wbuf()
819 memcpy(io->buf, wbuf->buf + (io->offset - wbuf->offset), io->len); in _read_from_wbuf()
822 unsigned int off = io->offset - wbuf->offset; in _read_from_wbuf()
824 for (x = 0; x < io->iovcnt; x++) { in _read_from_wbuf()
825 struct iovec *iov = &io->iov[x]; in _read_from_wbuf()
830 return io->len; in _read_from_wbuf()