Lines Matching refs:bufio
16 #include <linux/dm-bufio.h>
25 struct dm_bufio_client *bufio; /* Use dm-bufio for read and read-modify-write processing. */
33 unsigned char block_shift; /* bitshift sectors -> blocks used in dm-bufio API. */
63 * copy blocks between bufio blocks and bio vector's (partial/overlapping) pages.
83 cur_len = min(dm_bufio_get_block_size(ec->bufio) - buf_off, bv_len);
86 if (op == REQ_OP_READ || buf_off || bv_len < dm_bufio_get_block_size(ec->bufio))
87 ba = dm_bufio_read(ec->bufio, block, &b);
89 ba = dm_bufio_new(ec->bufio, block, &b);
121 /* READ/WRITE: iterate bio vector's copying between (partial) pages and bufio blocks. */
163 return blocks ? dm_bufio_issue_discard(ec->bufio, block, blocks) : 0;
166 /* Release blocks them from the bufio cache. */
173 dm_bufio_forget_buffers(ec->bufio, __sector_to_block(ec, sector), blocks);
197 dm_bufio_prefetch(ec->bufio, block1, __nr_blocks(ec, bio));
201 dm_bufio_prefetch(ec->bufio, block1, 1);
203 dm_bufio_prefetch(ec->bufio, block2, 1);
227 r = write ? dm_bufio_write_dirty_buffers(ec->bufio) : 0;
317 ec->bufio = dm_bufio_client_create(ec->dev->bdev, to_bytes(ec->u_bs), 1,
319 if (IS_ERR(ec->bufio)) {
320 ti->error = "Cannot create dm bufio client";
321 r = PTR_ERR(ec->bufio);
322 ec->bufio = NULL;
354 if (ec->bufio)
355 dm_bufio_client_destroy(ec->bufio);
371 * Only queue for bufio processing in case of partial or overlapping buffers
373 * emulation with ebs == ubs aiming for tests of dm-bufio overhead.