Lines Matching refs:bm

376 	struct dm_block_manager *bm;  in dm_block_manager_create()  local
378 bm = kmalloc(sizeof(*bm), GFP_KERNEL); in dm_block_manager_create()
379 if (!bm) { in dm_block_manager_create()
384 bm->bufio = dm_bufio_client_create(bdev, block_size, max_held_per_thread, in dm_block_manager_create()
388 if (IS_ERR(bm->bufio)) { in dm_block_manager_create()
389 r = PTR_ERR(bm->bufio); in dm_block_manager_create()
390 kfree(bm); in dm_block_manager_create()
394 bm->read_only = false; in dm_block_manager_create()
396 return bm; in dm_block_manager_create()
403 void dm_block_manager_destroy(struct dm_block_manager *bm) in dm_block_manager_destroy() argument
405 dm_bufio_client_destroy(bm->bufio); in dm_block_manager_destroy()
406 kfree(bm); in dm_block_manager_destroy()
410 unsigned dm_bm_block_size(struct dm_block_manager *bm) in dm_bm_block_size() argument
412 return dm_bufio_get_block_size(bm->bufio); in dm_bm_block_size()
416 dm_block_t dm_bm_nr_blocks(struct dm_block_manager *bm) in dm_bm_nr_blocks() argument
418 return dm_bufio_get_device_size(bm->bufio); in dm_bm_nr_blocks()
421 static int dm_bm_validate_buffer(struct dm_block_manager *bm, in dm_bm_validate_buffer() argument
430 r = v->check(v, (struct dm_block *) buf, dm_bufio_get_block_size(bm->bufio)); in dm_bm_validate_buffer()
448 int dm_bm_read_lock(struct dm_block_manager *bm, dm_block_t b, in dm_bm_read_lock() argument
456 p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result); in dm_bm_read_lock()
470 r = dm_bm_validate_buffer(bm, to_buffer(*result), aux, v); in dm_bm_read_lock()
481 int dm_bm_write_lock(struct dm_block_manager *bm, in dm_bm_write_lock() argument
489 if (bm->read_only) in dm_bm_write_lock()
492 p = dm_bufio_read(bm->bufio, b, (struct dm_buffer **) result); in dm_bm_write_lock()
506 r = dm_bm_validate_buffer(bm, to_buffer(*result), aux, v); in dm_bm_write_lock()
517 int dm_bm_read_try_lock(struct dm_block_manager *bm, in dm_bm_read_try_lock() argument
525 p = dm_bufio_get(bm->bufio, b, (struct dm_buffer **) result); in dm_bm_read_try_lock()
540 r = dm_bm_validate_buffer(bm, to_buffer(*result), aux, v); in dm_bm_read_try_lock()
550 int dm_bm_write_lock_zero(struct dm_block_manager *bm, in dm_bm_write_lock_zero() argument
558 if (bm->read_only) in dm_bm_write_lock_zero()
561 p = dm_bufio_new(bm->bufio, b, (struct dm_buffer **) result); in dm_bm_write_lock_zero()
565 memset(p, 0, dm_bm_block_size(bm)); in dm_bm_write_lock_zero()
596 int dm_bm_flush(struct dm_block_manager *bm) in dm_bm_flush() argument
598 if (bm->read_only) in dm_bm_flush()
601 return dm_bufio_write_dirty_buffers(bm->bufio); in dm_bm_flush()
605 void dm_bm_prefetch(struct dm_block_manager *bm, dm_block_t b) in dm_bm_prefetch() argument
607 dm_bufio_prefetch(bm->bufio, b, 1); in dm_bm_prefetch()
610 bool dm_bm_is_read_only(struct dm_block_manager *bm) in dm_bm_is_read_only() argument
612 return bm->read_only; in dm_bm_is_read_only()
616 void dm_bm_set_read_only(struct dm_block_manager *bm) in dm_bm_set_read_only() argument
618 bm->read_only = true; in dm_bm_set_read_only()
622 void dm_bm_set_read_write(struct dm_block_manager *bm) in dm_bm_set_read_write() argument
624 bm->read_only = false; in dm_bm_set_read_write()