Home
last modified time | relevance | path

Searched refs:prison (Results 1 – 7 of 7) sorted by relevance

/linux/drivers/md/ !
H A Ddm-bio-prison-v2.c9 #include "dm-bio-prison-v2.h"
39 struct dm_bio_prison_v2 *prison = kzalloc(sizeof(*prison), GFP_KERNEL); in dm_bio_prison_create_v2() local
42 if (!prison) in dm_bio_prison_create_v2()
45 prison->wq = wq; in dm_bio_prison_create_v2()
46 spin_lock_init(&prison->lock); in dm_bio_prison_create_v2()
48 ret = mempool_init_slab_pool(&prison->cell_pool, MIN_CELLS, _cell_cache); in dm_bio_prison_create_v2()
50 kfree(prison); in dm_bio_prison_create_v2()
54 prison->cells = RB_ROOT; in dm_bio_prison_create_v2()
56 return prison; in dm_bio_prison_create_v2()
60 dm_bio_prison_destroy_v2(struct dm_bio_prison_v2 * prison) dm_bio_prison_destroy_v2() argument
67 dm_bio_prison_alloc_cell_v2(struct dm_bio_prison_v2 * prison,gfp_t gfp) dm_bio_prison_alloc_cell_v2() argument
73 dm_bio_prison_free_cell_v2(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell) dm_bio_prison_free_cell_v2() argument
115 __find_or_insert(struct dm_bio_prison_v2 * prison,struct dm_cell_key_v2 * key,struct dm_bio_prison_cell_v2 * cell_prealloc,struct dm_bio_prison_cell_v2 ** result) __find_or_insert() argument
150 __get(struct dm_bio_prison_v2 * prison,struct dm_cell_key_v2 * key,unsigned int lock_level,struct bio * inmate,struct dm_bio_prison_cell_v2 * cell_prealloc,struct dm_bio_prison_cell_v2 ** cell) __get() argument
173 dm_cell_get_v2(struct dm_bio_prison_v2 * prison,struct dm_cell_key_v2 * key,unsigned int lock_level,struct bio * inmate,struct dm_bio_prison_cell_v2 * cell_prealloc,struct dm_bio_prison_cell_v2 ** cell_result) dm_cell_get_v2() argument
190 __put(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell) __put() argument
212 dm_cell_put_v2(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell) dm_cell_put_v2() argument
226 __lock(struct dm_bio_prison_v2 * prison,struct dm_cell_key_v2 * key,unsigned int lock_level,struct dm_bio_prison_cell_v2 * cell_prealloc,struct dm_bio_prison_cell_v2 ** cell_result) __lock() argument
257 dm_cell_lock_v2(struct dm_bio_prison_v2 * prison,struct dm_cell_key_v2 * key,unsigned int lock_level,struct dm_bio_prison_cell_v2 * cell_prealloc,struct dm_bio_prison_cell_v2 ** cell_result) dm_cell_lock_v2() argument
273 __quiesce(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell,struct work_struct * continuation) __quiesce() argument
283 dm_cell_quiesce_v2(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell,struct work_struct * continuation) dm_cell_quiesce_v2() argument
293 __promote(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell,unsigned int new_lock_level) __promote() argument
304 dm_cell_lock_promote_v2(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell,unsigned int new_lock_level) dm_cell_lock_promote_v2() argument
318 __unlock(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell,struct bio_list * bios) __unlock() argument
335 dm_cell_unlock_v2(struct dm_bio_prison_v2 * prison,struct dm_bio_prison_cell_v2 * cell,struct bio_list * bios) dm_cell_unlock_v2() argument
[all...]
H A Ddm-bio-prison-v1.c9 #include "dm-bio-prison-v1.h"
10 #include "dm-bio-prison-v2.h"
44 struct dm_bio_prison *prison; in dm_bio_prison_create() local
47 prison = kzalloc(struct_size(prison, regions, num_locks), GFP_KERNEL); in dm_bio_prison_create()
48 if (!prison) in dm_bio_prison_create()
50 prison->num_locks = num_locks; in dm_bio_prison_create()
52 for (i = 0; i < prison->num_locks; i++) { in dm_bio_prison_create()
53 spin_lock_init(&prison->regions[i].lock); in dm_bio_prison_create()
54 prison in dm_bio_prison_create()
67 dm_bio_prison_destroy(struct dm_bio_prison * prison) dm_bio_prison_destroy() argument
74 dm_bio_prison_alloc_cell(struct dm_bio_prison * prison,gfp_t gfp) dm_bio_prison_alloc_cell() argument
80 dm_bio_prison_free_cell(struct dm_bio_prison * prison,struct dm_bio_prison_cell * cell) dm_bio_prison_free_cell() argument
175 bio_detain(struct dm_bio_prison * prison,struct dm_cell_key * key,struct bio * inmate,struct dm_bio_prison_cell * cell_prealloc,struct dm_bio_prison_cell ** cell_result) bio_detain() argument
191 dm_bio_detain(struct dm_bio_prison * prison,struct dm_cell_key * key,struct bio * inmate,struct dm_bio_prison_cell * cell_prealloc,struct dm_bio_prison_cell ** cell_result) dm_bio_detain() argument
217 dm_cell_release(struct dm_bio_prison * prison,struct dm_bio_prison_cell * cell,struct bio_list * bios) dm_cell_release() argument
240 dm_cell_release_no_holder(struct dm_bio_prison * prison,struct dm_bio_prison_cell * cell,struct bio_list * inmates) dm_cell_release_no_holder() argument
253 dm_cell_error(struct dm_bio_prison * prison,struct dm_bio_prison_cell * cell,blk_status_t error) dm_cell_error() argument
269 dm_cell_visit_release(struct dm_bio_prison * prison,void (* visit_fn)(void *,struct dm_bio_prison_cell *),void * context,struct dm_bio_prison_cell * cell) dm_cell_visit_release() argument
[all...]
H A Ddm-bio-prison-v2.h24 * Sometimes we can't deal with a bio straight away. We put them in prison
58 void dm_bio_prison_destroy_v2(struct dm_bio_prison_v2 *prison);
62 * Eventually all bio prison clients should manage their own cell memory.
67 struct dm_bio_prison_cell_v2 *dm_bio_prison_alloc_cell_v2(struct dm_bio_prison_v2 *prison,
69 void dm_bio_prison_free_cell_v2(struct dm_bio_prison_v2 *prison,
88 bool dm_cell_get_v2(struct dm_bio_prison_v2 *prison,
99 bool dm_cell_put_v2(struct dm_bio_prison_v2 *prison,
116 int dm_cell_lock_v2(struct dm_bio_prison_v2 *prison,
122 void dm_cell_quiesce_v2(struct dm_bio_prison_v2 *prison,
134 int dm_cell_lock_promote_v2(struct dm_bio_prison_v2 *prison,
[all...]
H A Ddm-bio-prison-v1.h20 * Sometimes we can't deal with a bio straight away. We put them in prison
61 void dm_bio_prison_destroy(struct dm_bio_prison *prison);
65 * Eventually all bio prison clients should manage their own cell memory.
70 struct dm_bio_prison_cell *dm_bio_prison_alloc_cell(struct dm_bio_prison *prison,
72 void dm_bio_prison_free_cell(struct dm_bio_prison *prison,
86 int dm_bio_detain(struct dm_bio_prison *prison,
92 void dm_cell_release(struct dm_bio_prison *prison,
95 void dm_cell_release_no_holder(struct dm_bio_prison *prison,
98 void dm_cell_error(struct dm_bio_prison *prison,
105 void dm_cell_visit_release(struct dm_bio_prison *prison,
[all...]
H A DMakefile19 dm-bio-prison-y += dm-bio-prison-v1.o dm-bio-prison-v2.o
54 obj-$(CONFIG_DM_BIO_PRISON) += dm-bio-prison.o
H A Ddm-cache-target.c9 #include "dm-bio-prison-v2.h"
374 struct dm_bio_prison_v2 *prison; member
473 return dm_bio_prison_alloc_cell_v2(cache->prison, GFP_NOIO); in alloc_prison_cell()
478 dm_bio_prison_free_cell_v2(cache->prison, cell); in free_prison_cell()
593 r = dm_cell_get_v2(cache->prison, &key, lock_level(bio), bio, cell_prealloc, &cell); in bio_detain_shared()
1080 dm_cell_quiesce_v2(mg->cache->prison, mg->cell, &mg->k.ws); in quiesce()
1123 if (pb->cell && dm_cell_put_v2(cache->prison, pb->cell)) in bio_drop_shared_lock()
1224 if (dm_cell_unlock_v2(cache->prison, mg->cell, &bios)) in mg_complete()
1332 r = dm_cell_lock_promote_v2(mg->cache->prison, mg->cell, in mg_upgrade_lock()
1413 r = dm_cell_lock_v2(cache->prison, in mg_lock_writes()
[all...]
H A Ddm-thin.c9 #include "dm-bio-prison-v1.h"
250 struct dm_bio_prison *prison; member
450 * Allocate a cell from the prison's mempool. in bio_detain()
453 cell_prealloc = dm_bio_prison_alloc_cell(pool->prison, GFP_NOIO); in bio_detain()
455 r = dm_bio_detain(pool->prison, key, bio, cell_prealloc, cell_result); in bio_detain()
461 dm_bio_prison_free_cell(pool->prison, cell_prealloc); in bio_detain()
471 dm_cell_release(pool->prison, cell, bios); in cell_release()
472 dm_bio_prison_free_cell(pool->prison, cell); in cell_release()
480 dm_cell_visit_release(pool->prison, fn, context, cell); in cell_visit_release()
481 dm_bio_prison_free_cell(pool->prison, cel in cell_visit_release()
[all...]