Lines Matching defs:bufio
15 #include <linux/dm-bufio.h>
24 struct dm_bufio_client *bufio; /* Use dm-bufio for read and read-modify-write processing. */
32 unsigned char block_shift; /* bitshift sectors -> blocks used in dm-bufio API. */
62 * copy blocks between bufio blocks and bio vector's (partial/overlapping) pages.
81 cur_len = min(dm_bufio_get_block_size(ec->bufio) - buf_off, bv_len);
84 if (rw == READ || buf_off || bv_len < dm_bufio_get_block_size(ec->bufio))
85 ba = dm_bufio_read(ec->bufio, block, &b);
87 ba = dm_bufio_new(ec->bufio, block, &b);
119 /* READ/WRITE: iterate bio vector's copying between (partial) pages and bufio blocks. */
161 return blocks ? dm_bufio_issue_discard(ec->bufio, block, blocks) : 0;
164 /* Release blocks them from the bufio cache. */
171 dm_bufio_forget_buffers(ec->bufio, __sector_to_block(ec, sector), blocks);
195 dm_bufio_prefetch(ec->bufio, block1, __nr_blocks(ec, bio));
199 dm_bufio_prefetch(ec->bufio, block1, 1);
201 dm_bufio_prefetch(ec->bufio, block2, 1);
225 r = write ? dm_bufio_write_dirty_buffers(ec->bufio) : 0;
315 ec->bufio = dm_bufio_client_create(ec->dev->bdev, to_bytes(ec->u_bs), 1, 0, NULL, NULL);
316 if (IS_ERR(ec->bufio)) {
317 ti->error = "Cannot create dm bufio client";
318 r = PTR_ERR(ec->bufio);
319 ec->bufio = NULL;
352 if (ec->bufio)
353 dm_bufio_client_destroy(ec->bufio);
369 * Only queue for bufio processing in case of partial or overlapping buffers
371 * emulation with ebs == ubs aiming for tests of dm-bufio overhead.