• Home
  • Raw
  • Download

Lines Matching refs:cell

218 typedef void (*process_cell_fn)(struct thin_c *tc, struct dm_bio_prison_cell *cell);
428 struct dm_bio_prison_cell *cell, in cell_release() argument
431 dm_cell_release(pool->prison, cell, bios); in cell_release()
432 dm_bio_prison_free_cell(pool->prison, cell); in cell_release()
438 struct dm_bio_prison_cell *cell) in cell_visit_release() argument
440 dm_cell_visit_release(pool->prison, fn, context, cell); in cell_visit_release()
441 dm_bio_prison_free_cell(pool->prison, cell); in cell_visit_release()
445 struct dm_bio_prison_cell *cell, in cell_release_no_holder() argument
448 dm_cell_release_no_holder(pool->prison, cell, bios); in cell_release_no_holder()
449 dm_bio_prison_free_cell(pool->prison, cell); in cell_release_no_holder()
453 struct dm_bio_prison_cell *cell, int error_code) in cell_error_with_code() argument
455 dm_cell_error(pool->prison, cell, error_code); in cell_error_with_code()
456 dm_bio_prison_free_cell(pool->prison, cell); in cell_error_with_code()
464 static void cell_error(struct pool *pool, struct dm_bio_prison_cell *cell) in cell_error() argument
468 cell_error_with_code(pool, cell, error); in cell_error()
471 static void cell_success(struct pool *pool, struct dm_bio_prison_cell *cell) in cell_success() argument
473 cell_error_with_code(pool, cell, 0); in cell_success()
476 static void cell_requeue(struct pool *pool, struct dm_bio_prison_cell *cell) in cell_requeue() argument
478 cell_error_with_code(pool, cell, DM_ENDIO_REQUEUE); in cell_requeue()
549 struct dm_bio_prison_cell *cell; member
587 struct dm_bio_prison_cell *cell, *tmp; in requeue_deferred_cells() local
595 list_for_each_entry_safe(cell, tmp, &cells, user_list) in requeue_deferred_cells()
596 cell_requeue(pool, cell); in requeue_deferred_cells()
781 struct dm_bio_prison_cell *cell; member
846 static void cell_defer_no_holder(struct thin_c *tc, struct dm_bio_prison_cell *cell) in cell_defer_no_holder() argument
852 cell_release_no_holder(pool, cell, &tc->deferred_bio_list); in cell_defer_no_holder()
867 struct dm_bio_prison_cell *cell) in __inc_remap_and_issue_cell() argument
872 while ((bio = bio_list_pop(&cell->bios))) { in __inc_remap_and_issue_cell()
890 struct dm_bio_prison_cell *cell, in inc_remap_and_issue_cell() argument
906 &info, cell); in inc_remap_and_issue_cell()
917 cell_error(m->tc->pool, m->cell); in process_prepared_mapping_fail()
930 cell_error(pool, m->cell); in process_prepared_mapping()
942 cell_error(pool, m->cell); in process_prepared_mapping()
953 inc_remap_and_issue_cell(tc, m->cell, m->data_block); in process_prepared_mapping()
956 inc_all_io_entry(tc->pool, m->cell->holder); in process_prepared_mapping()
957 remap_and_issue(tc, m->cell->holder, m->data_block); in process_prepared_mapping()
958 inc_remap_and_issue_cell(tc, m->cell, m->data_block); in process_prepared_mapping()
971 if (m->cell) in free_discard_mapping()
972 cell_defer_no_holder(tc, m->cell); in free_discard_mapping()
993 r = dm_thin_remove_range(tc->td, m->cell->key.block_begin, m->cell->key.block_end); in process_prepared_discard_no_passdown()
1000 cell_defer_no_holder(tc, m->cell); in process_prepared_discard_no_passdown()
1093 cell_defer_no_holder(tc, m->cell); in process_prepared_discard_passdown_pt1()
1106 cell_defer_no_holder(tc, m->cell); in process_prepared_discard_passdown_pt1()
1151 cell_defer_no_holder(tc, m->cell); in process_prepared_discard_passdown_pt2()
1255 struct dm_bio_prison_cell *cell, struct bio *bio, in schedule_copy() argument
1266 m->cell = cell; in schedule_copy()
1327 struct dm_bio_prison_cell *cell, struct bio *bio) in schedule_internal_copy() argument
1330 data_origin, data_dest, cell, bio, in schedule_internal_copy()
1335 dm_block_t data_block, struct dm_bio_prison_cell *cell, in schedule_zero() argument
1346 m->cell = cell; in schedule_zero()
1365 struct dm_bio_prison_cell *cell, struct bio *bio) in schedule_external_copy() argument
1373 virt_block, data_dest, cell, bio, in schedule_external_copy()
1378 virt_block, data_dest, cell, bio, in schedule_external_copy()
1382 schedule_zero(tc, virt_block, data_dest, cell, bio); in schedule_external_copy()
1533 static void retry_bios_on_resume(struct pool *pool, struct dm_bio_prison_cell *cell) in retry_bios_on_resume() argument
1541 cell_error_with_code(pool, cell, error); in retry_bios_on_resume()
1546 cell_release(pool, cell, &bios); in retry_bios_on_resume()
1565 m->cell = virt_cell; in process_discard_cell_no_passdown()
1616 m->cell = data_cell; in break_up_discard_bio()
1645 h->cell = virt_cell; in process_discard_cell_passdown()
1688 struct dm_bio_prison_cell *cell) in break_sharing() argument
1698 data_block, cell, bio); in break_sharing()
1702 retry_bios_on_resume(pool, cell); in break_sharing()
1708 cell_error(pool, cell); in break_sharing()
1714 struct dm_bio_prison_cell *cell) in __remap_and_issue_shared_cell() argument
1719 while ((bio = bio_list_pop(&cell->bios))) { in __remap_and_issue_shared_cell()
1735 struct dm_bio_prison_cell *cell, in remap_and_issue_shared_cell() argument
1746 &info, cell); in remap_and_issue_shared_cell()
1790 struct dm_bio_prison_cell *cell) in provision_block() argument
1801 cell_defer_no_holder(tc, cell); in provision_block()
1812 cell_defer_no_holder(tc, cell); in provision_block()
1821 schedule_external_copy(tc, block, data_block, cell, bio); in provision_block()
1823 schedule_zero(tc, block, data_block, cell, bio); in provision_block()
1827 retry_bios_on_resume(pool, cell); in provision_block()
1833 cell_error(pool, cell); in provision_block()
1838 static void process_cell(struct thin_c *tc, struct dm_bio_prison_cell *cell) in process_cell() argument
1842 struct bio *bio = cell->holder; in process_cell()
1847 cell_requeue(pool, cell); in process_cell()
1855 process_shared_bio(tc, bio, block, &lookup_result, cell); in process_cell()
1859 inc_remap_and_issue_cell(tc, cell, lookup_result.block); in process_cell()
1866 cell_defer_no_holder(tc, cell); in process_cell()
1881 provision_block(tc, bio, block, cell); in process_cell()
1887 cell_defer_no_holder(tc, cell); in process_cell()
1897 struct dm_bio_prison_cell *cell; in process_bio() local
1905 if (bio_detain(pool, &key, bio, &cell)) in process_bio()
1908 process_cell(tc, cell); in process_bio()
1912 struct dm_bio_prison_cell *cell) in __process_bio_read_only() argument
1924 if (cell) in __process_bio_read_only()
1925 cell_defer_no_holder(tc, cell); in __process_bio_read_only()
1929 if (cell) in __process_bio_read_only()
1930 inc_remap_and_issue_cell(tc, cell, lookup_result.block); in __process_bio_read_only()
1935 if (cell) in __process_bio_read_only()
1936 cell_defer_no_holder(tc, cell); in __process_bio_read_only()
1955 if (cell) in __process_bio_read_only()
1956 cell_defer_no_holder(tc, cell); in __process_bio_read_only()
1967 static void process_cell_read_only(struct thin_c *tc, struct dm_bio_prison_cell *cell) in process_cell_read_only() argument
1969 __process_bio_read_only(tc, cell->holder, cell); in process_cell_read_only()
1982 static void process_cell_success(struct thin_c *tc, struct dm_bio_prison_cell *cell) in process_cell_success() argument
1984 cell_success(tc->pool, cell); in process_cell_success()
1987 static void process_cell_fail(struct thin_c *tc, struct dm_bio_prison_cell *cell) in process_cell_fail() argument
1989 cell_error(tc->pool, cell); in process_cell_fail()
2144 struct dm_bio_prison_cell *cell, *tmp; in sort_cells() local
2146 list_for_each_entry_safe(cell, tmp, cells, user_list) { in sort_cells()
2150 pool->cell_sort_array[count++] = cell; in sort_cells()
2151 list_del(&cell->user_list); in sort_cells()
2154 sort(pool->cell_sort_array, count, sizeof(cell), cmp_cells, NULL); in sort_cells()
2164 struct dm_bio_prison_cell *cell; in process_thin_deferred_cells() local
2180 cell = pool->cell_sort_array[i]; in process_thin_deferred_cells()
2181 BUG_ON(!cell->holder); in process_thin_deferred_cells()
2198 if (bio_op(cell->holder) == REQ_OP_DISCARD) in process_thin_deferred_cells()
2199 pool->process_discard_cell(tc, cell); in process_thin_deferred_cells()
2201 pool->process_cell(tc, cell); in process_thin_deferred_cells()
2588 static void thin_defer_cell(struct thin_c *tc, struct dm_bio_prison_cell *cell) in thin_defer_cell() argument
2595 list_add_tail(&cell->user_list, &tc->deferred_cells); in thin_defer_cell()
2610 h->cell = NULL; in thin_hook_bio()
4217 if (h->cell) in thin_endio()
4218 cell_defer_no_holder(h->tc, h->cell); in thin_endio()