dm_buffer
static void buffer_record_stack(struct dm_buffer *b)
static void adjust_total_allocated(struct dm_buffer *b, bool unlink)
static struct dm_buffer *alloc_buffer(struct dm_bufio_client *c, gfp_t gfp_mask)
struct dm_buffer *b = kmem_cache_alloc(c->slab_buffer, gfp_mask);
static void free_buffer(struct dm_buffer *b)
struct dm_buffer *b = context;
static void use_dmio(struct dm_buffer *b, enum req_op op, sector_t sector,
struct dm_buffer *b = bio->bi_private;
static void use_bio(struct dm_buffer *b, enum req_op op, sector_t sector,
static void submit_io(struct dm_buffer *b, enum req_op op, unsigned short ioprio,
void (*end_io)(struct dm_buffer *, blk_status_t))
static void write_endio(struct dm_buffer *b, blk_status_t status)
static void __write_dirty_buffer(struct dm_buffer *b,
struct dm_buffer *b =
list_entry(write_list->next, struct dm_buffer, write_list);
static void __make_buffer_clean(struct dm_buffer *b)
static enum evict_result is_clean(struct dm_buffer *b, void *context)
static enum evict_result is_dirty(struct dm_buffer *b, void *context)
static struct dm_buffer *__get_unclaimed_buffer(struct dm_bufio_client *c)
struct dm_buffer *b;
static struct dm_buffer *__alloc_buffer_wait_no_callback(struct dm_bufio_client *c, enum new_flag nf)
struct dm_buffer *b;
static struct dm_buffer *__alloc_buffer_wait(struct dm_bufio_client *c, enum new_flag nf)
struct dm_buffer *b = __alloc_buffer_wait_no_callback(c, nf);
static void __free_buffer_wake(struct dm_buffer *b)
static enum evict_result cleaned(struct dm_buffer *b, void *context)
static enum it_action write_one(struct dm_buffer *b, void *context)
struct buffer_tree *tree, struct dm_buffer *b)
static struct dm_buffer *__bufio_new(struct dm_bufio_client *c,
struct dm_buffer *b, *new_b = NULL;
static void read_endio(struct dm_buffer *b, blk_status_t status)
enum new_flag nf, struct dm_buffer **bp,
struct dm_buffer *b;
struct dm_buffer **bp)
struct dm_buffer **bp, unsigned short ioprio)
struct dm_buffer **bp)
struct dm_buffer **bp, unsigned short ioprio)
struct dm_buffer **bp)
struct dm_buffer *b;
void dm_bufio_release(struct dm_buffer *b)
void dm_bufio_mark_partial_buffer_dirty(struct dm_buffer *b,
void dm_bufio_mark_buffer_dirty(struct dm_buffer *b)
struct dm_buffer *b = le_to_buffer(e);
struct dm_buffer *b = le_to_buffer(e);
struct dm_buffer *b;
static enum evict_result idle(struct dm_buffer *b, void *context)
sector_t dm_bufio_get_block_number(struct dm_buffer *b)
void *dm_bufio_get_block_data(struct dm_buffer *b)
void *dm_bufio_get_aux_data(struct dm_buffer *b)
struct dm_bufio_client *dm_bufio_get_client(struct dm_buffer *b)
static enum it_action warn_leak(struct dm_buffer *b, void *context)
struct dm_buffer *b;
struct dm_buffer *b;
void (*alloc_callback)(struct dm_buffer *),
void (*write_callback)(struct dm_buffer *),
c->slab_buffer = kmem_cache_create(slab_name, sizeof(struct dm_buffer) + aux_size,
struct dm_buffer *b = alloc_buffer(c, GFP_KERNEL);
struct dm_buffer *b = list_to_buffer(c->reserved_buffers.next);
struct dm_buffer *b = list_to_buffer(c->reserved_buffers.next);
static enum evict_result select_for_evict(struct dm_buffer *b, void *context)
struct dm_buffer *b;
struct dm_buffer {
void (*end_io)(struct dm_buffer *b, blk_status_t bs);
static inline struct dm_buffer *le_to_buffer(struct lru_entry *le)
static struct dm_buffer *list_to_buffer(struct list_head *l)
static struct dm_buffer *__cache_get(const struct rb_root *root, sector_t block)
struct dm_buffer *b;
b = container_of(n, struct dm_buffer, node);
static void __cache_inc_buffer(struct dm_buffer *b)
static struct dm_buffer *cache_get(struct dm_buffer_cache *bc,
struct dm_buffer *b;
struct dm_buffer *b = le_to_buffer(le);
static struct dm_buffer *__cache_evict(struct dm_buffer_cache *bc, int list_mode,
struct dm_buffer *b;
static struct dm_buffer *cache_evict(struct dm_buffer_cache *bc, int list_mode,
struct dm_buffer *b;
struct dm_buffer *b, int list_mode)
struct dm_buffer *b;
typedef enum it_action (*iter_fn)(struct dm_buffer *b, void *context);
struct dm_buffer *b = le_to_buffer(le);
static bool __cache_insert(struct rb_root *root, struct dm_buffer *b)
struct dm_buffer *found;
struct dm_buffer *b)
struct dm_buffer *b)
static struct dm_buffer *__find_next(struct rb_root *root, sector_t block)
struct dm_buffer *b;
struct dm_buffer *best = NULL;
struct dm_buffer *b;
void (*alloc_callback)(struct dm_buffer *buf);
void (*write_callback)(struct dm_buffer *buf);
struct dm_buffer *b;
struct dm_buffer *b;
struct dm_buffer *bp;
struct dm_buffer *buffer = NULL;
struct dm_buffer *buffer = NULL;
struct dm_buffer *buffer;
struct dm_buffer *buffer;
struct dm_buffer **page_buffers;
return vdo_allocate(chapter->index_pages_count, struct dm_buffer *,
u32 index_page_number, struct dm_buffer *page_buffer)
struct dm_buffer *page_buffer;
struct dm_buffer *page_buffer;
struct dm_buffer *volume_buffers[],
struct dm_buffer *volume_buffers[],
struct dm_buffer *buffer;
struct dm_buffer *buf;
struct dm_buffer *buf;
struct dm_buffer **buf, unsigned short ioprio)
struct dm_buffer *buf;
static void dm_bufio_alloc_callback(struct dm_buffer *buf)
static struct dm_buffer *to_buffer(struct dm_block *b)
return (struct dm_buffer *) b;
static void dm_block_manager_alloc_callback(struct dm_buffer *buf)
static void dm_block_manager_write_callback(struct dm_buffer *buf)
struct dm_buffer *buf,
p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result);
p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result);
p = dm_bufio_get(bm->bufio, b, (struct dm_buffer **) result);
p = dm_bufio_new(bm->bufio, b, (struct dm_buffer **) result);
void dm_bufio_release(struct dm_buffer *b);
void dm_bufio_mark_buffer_dirty(struct dm_buffer *b);
void dm_bufio_mark_partial_buffer_dirty(struct dm_buffer *b,
sector_t dm_bufio_get_block_number(struct dm_buffer *b);
void *dm_bufio_get_block_data(struct dm_buffer *b);
void *dm_bufio_get_aux_data(struct dm_buffer *b);
struct dm_bufio_client *dm_bufio_get_client(struct dm_buffer *b);
struct dm_buffer;
void (*alloc_callback)(struct dm_buffer *),
void (*write_callback)(struct dm_buffer *),
struct dm_buffer **bp);
struct dm_buffer **bp, unsigned short ioprio);
struct dm_buffer **bp);
struct dm_buffer **bp);