Lines Matching refs:l
287 const struct btrfsic_block_link *l);
289 const struct btrfsic_block_link *l);
373 static void btrfsic_block_link_init(struct btrfsic_block_link *l) in btrfsic_block_link_init() argument
375 l->magic_num = BTRFSIC_BLOCK_LINK_MAGIC_NUMBER; in btrfsic_block_link_init()
376 l->ref_cnt = 1; in btrfsic_block_link_init()
377 INIT_LIST_HEAD(&l->node_ref_to); in btrfsic_block_link_init()
378 INIT_LIST_HEAD(&l->node_ref_from); in btrfsic_block_link_init()
379 INIT_LIST_HEAD(&l->collision_resolving_node); in btrfsic_block_link_init()
380 l->block_ref_to = NULL; in btrfsic_block_link_init()
381 l->block_ref_from = NULL; in btrfsic_block_link_init()
386 struct btrfsic_block_link *l; in btrfsic_block_link_alloc() local
388 l = kzalloc(sizeof(*l), GFP_NOFS); in btrfsic_block_link_alloc()
389 if (NULL != l) in btrfsic_block_link_alloc()
390 btrfsic_block_link_init(l); in btrfsic_block_link_alloc()
392 return l; in btrfsic_block_link_alloc()
395 static void btrfsic_block_link_free(struct btrfsic_block_link *l) in btrfsic_block_link_free() argument
397 BUG_ON(!(NULL == l || BTRFSIC_BLOCK_LINK_MAGIC_NUMBER == l->magic_num)); in btrfsic_block_link_free()
398 kfree(l); in btrfsic_block_link_free()
485 struct btrfsic_block_link *l, in btrfsic_block_link_hashtable_add() argument
489 (((unsigned int)(l->block_ref_to->dev_bytenr >> 16)) ^ in btrfsic_block_link_hashtable_add()
490 ((unsigned int)(l->block_ref_from->dev_bytenr >> 16)) ^ in btrfsic_block_link_hashtable_add()
491 ((unsigned int)((uintptr_t)l->block_ref_to->dev_state->bdev)) ^ in btrfsic_block_link_hashtable_add()
492 ((unsigned int)((uintptr_t)l->block_ref_from->dev_state->bdev))) in btrfsic_block_link_hashtable_add()
495 BUG_ON(NULL == l->block_ref_to); in btrfsic_block_link_hashtable_add()
496 BUG_ON(NULL == l->block_ref_from); in btrfsic_block_link_hashtable_add()
497 list_add(&l->collision_resolving_node, h->table + hashval); in btrfsic_block_link_hashtable_add()
500 static void btrfsic_block_link_hashtable_remove(struct btrfsic_block_link *l) in btrfsic_block_link_hashtable_remove() argument
502 list_del(&l->collision_resolving_node); in btrfsic_block_link_hashtable_remove()
518 struct btrfsic_block_link *l; in btrfsic_block_link_hashtable_lookup() local
520 list_for_each_entry(l, h->table + hashval, collision_resolving_node) { in btrfsic_block_link_hashtable_lookup()
521 BUG_ON(NULL == l->block_ref_to); in btrfsic_block_link_hashtable_lookup()
522 BUG_ON(NULL == l->block_ref_from); in btrfsic_block_link_hashtable_lookup()
523 if (l->block_ref_to->dev_state->bdev == bdev_ref_to && in btrfsic_block_link_hashtable_lookup()
524 l->block_ref_to->dev_bytenr == dev_bytenr_ref_to && in btrfsic_block_link_hashtable_lookup()
525 l->block_ref_from->dev_state->bdev == bdev_ref_from && in btrfsic_block_link_hashtable_lookup()
526 l->block_ref_from->dev_bytenr == dev_bytenr_ref_from) in btrfsic_block_link_hashtable_lookup()
527 return l; in btrfsic_block_link_hashtable_lookup()
650 struct btrfsic_block_link *l; in btrfsic_process_superblock() local
669 l = btrfsic_block_link_hashtable_lookup( in btrfsic_process_superblock()
676 BUG_ON(NULL == l); in btrfsic_process_superblock()
821 struct btrfsic_block_link *l; in btrfsic_process_superblock_dev_mirror() local
845 l = btrfsic_block_link_lookup_or_add( in btrfsic_process_superblock_dev_mirror()
850 if (NULL == l) { in btrfsic_process_superblock_dev_mirror()
1181 struct btrfsic_block_link *l; in btrfsic_create_link_to_next_block() local
1224 l = NULL; in btrfsic_create_link_to_next_block()
1247 l = btrfsic_block_link_hashtable_lookup( in btrfsic_create_link_to_next_block()
1256 if (NULL == l) { in btrfsic_create_link_to_next_block()
1257 l = btrfsic_block_link_alloc(); in btrfsic_create_link_to_next_block()
1258 if (NULL == l) { in btrfsic_create_link_to_next_block()
1265 l->block_ref_to = next_block; in btrfsic_create_link_to_next_block()
1266 l->block_ref_from = block; in btrfsic_create_link_to_next_block()
1267 l->ref_cnt = 1; in btrfsic_create_link_to_next_block()
1268 l->parent_generation = parent_generation; in btrfsic_create_link_to_next_block()
1271 btrfsic_print_add_link(state, l); in btrfsic_create_link_to_next_block()
1273 list_add(&l->node_ref_to, &block->ref_to_list); in btrfsic_create_link_to_next_block()
1274 list_add(&l->node_ref_from, &next_block->ref_from_list); in btrfsic_create_link_to_next_block()
1276 btrfsic_block_link_hashtable_add(l, in btrfsic_create_link_to_next_block()
1281 l->ref_cnt++; in btrfsic_create_link_to_next_block()
1282 l->parent_generation = parent_generation; in btrfsic_create_link_to_next_block()
1284 btrfsic_print_add_link(state, l); in btrfsic_create_link_to_next_block()
1319 struct btrfsic_block_link *l; in btrfsic_handle_extent_data() local
1435 l = btrfsic_block_link_lookup_or_add(state, in btrfsic_handle_extent_data()
1440 if (NULL == l) in btrfsic_handle_extent_data()
1603 const struct btrfsic_block_link *l; in btrfsic_dump_database() local
1610 list_for_each_entry(l, &b_all->ref_to_list, node_ref_to) { in btrfsic_dump_database()
1615 l->ref_cnt, in btrfsic_dump_database()
1616 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_dump_database()
1617 l->block_ref_to->logical_bytenr, in btrfsic_dump_database()
1618 l->block_ref_to->dev_state->name, in btrfsic_dump_database()
1619 l->block_ref_to->dev_bytenr, in btrfsic_dump_database()
1620 l->block_ref_to->mirror_num); in btrfsic_dump_database()
1623 list_for_each_entry(l, &b_all->ref_from_list, node_ref_from) { in btrfsic_dump_database()
1628 l->ref_cnt, in btrfsic_dump_database()
1629 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_dump_database()
1630 l->block_ref_from->logical_bytenr, in btrfsic_dump_database()
1631 l->block_ref_from->dev_state->name, in btrfsic_dump_database()
1632 l->block_ref_from->dev_bytenr, in btrfsic_dump_database()
1633 l->block_ref_from->mirror_num); in btrfsic_dump_database()
1708 struct btrfsic_block_link *l, *tmp; in btrfsic_process_written_block() local
1813 list_for_each_entry_safe(l, tmp, &block->ref_to_list, in btrfsic_process_written_block()
1816 btrfsic_print_rem_link(state, l); in btrfsic_process_written_block()
1817 l->ref_cnt--; in btrfsic_process_written_block()
1818 if (0 == l->ref_cnt) { in btrfsic_process_written_block()
1819 list_del(&l->node_ref_to); in btrfsic_process_written_block()
1820 list_del(&l->node_ref_from); in btrfsic_process_written_block()
1821 btrfsic_block_link_hashtable_remove(l); in btrfsic_process_written_block()
1822 btrfsic_block_link_free(l); in btrfsic_process_written_block()
2106 struct btrfsic_block_link *l; in btrfsic_process_written_superblock() local
2184 l = btrfsic_block_link_lookup_or_add( in btrfsic_process_written_superblock()
2191 if (NULL == l) in btrfsic_process_written_superblock()
2206 const struct btrfsic_block_link *l; in btrfsic_check_all_ref_blocks() local
2233 list_for_each_entry(l, &block->ref_to_list, node_ref_to) { in btrfsic_check_all_ref_blocks()
2240 l->ref_cnt, in btrfsic_check_all_ref_blocks()
2241 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2242 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2243 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2244 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2245 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2246 if (l->block_ref_to->never_written) { in btrfsic_check_all_ref_blocks()
2248 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2249 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2250 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2251 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2252 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2254 } else if (!l->block_ref_to->is_iodone) { in btrfsic_check_all_ref_blocks()
2256 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2257 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2258 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2259 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2260 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2262 } else if (l->block_ref_to->iodone_w_error) { in btrfsic_check_all_ref_blocks()
2264 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2265 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2266 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2267 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2268 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2270 } else if (l->parent_generation != in btrfsic_check_all_ref_blocks()
2271 l->block_ref_to->generation && in btrfsic_check_all_ref_blocks()
2273 l->parent_generation && in btrfsic_check_all_ref_blocks()
2275 l->block_ref_to->generation) { in btrfsic_check_all_ref_blocks()
2277 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2278 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2279 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2280 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2281 l->block_ref_to->mirror_num, in btrfsic_check_all_ref_blocks()
2282 l->block_ref_to->generation, in btrfsic_check_all_ref_blocks()
2283 l->parent_generation); in btrfsic_check_all_ref_blocks()
2285 } else if (l->block_ref_to->flush_gen > in btrfsic_check_all_ref_blocks()
2286 l->block_ref_to->dev_state->last_flush_gen) { in btrfsic_check_all_ref_blocks()
2288 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2289 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2290 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2291 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2292 l->block_ref_to->mirror_num, block->flush_gen, in btrfsic_check_all_ref_blocks()
2293 l->block_ref_to->dev_state->last_flush_gen); in btrfsic_check_all_ref_blocks()
2296 l->block_ref_to, in btrfsic_check_all_ref_blocks()
2311 const struct btrfsic_block_link *l; in btrfsic_is_block_ref_by_superblock() local
2325 list_for_each_entry(l, &block->ref_from_list, node_ref_from) { in btrfsic_is_block_ref_by_superblock()
2332 l->ref_cnt, in btrfsic_is_block_ref_by_superblock()
2333 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_is_block_ref_by_superblock()
2334 l->block_ref_from->logical_bytenr, in btrfsic_is_block_ref_by_superblock()
2335 l->block_ref_from->dev_state->name, in btrfsic_is_block_ref_by_superblock()
2336 l->block_ref_from->dev_bytenr, in btrfsic_is_block_ref_by_superblock()
2337 l->block_ref_from->mirror_num); in btrfsic_is_block_ref_by_superblock()
2338 if (l->block_ref_from->is_superblock && in btrfsic_is_block_ref_by_superblock()
2340 l->block_ref_from->dev_bytenr && in btrfsic_is_block_ref_by_superblock()
2342 l->block_ref_from->dev_state->bdev) in btrfsic_is_block_ref_by_superblock()
2345 l->block_ref_from, in btrfsic_is_block_ref_by_superblock()
2355 const struct btrfsic_block_link *l) in btrfsic_print_add_link() argument
2358 l->ref_cnt, in btrfsic_print_add_link()
2359 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_print_add_link()
2360 l->block_ref_from->logical_bytenr, in btrfsic_print_add_link()
2361 l->block_ref_from->dev_state->name, in btrfsic_print_add_link()
2362 l->block_ref_from->dev_bytenr, l->block_ref_from->mirror_num, in btrfsic_print_add_link()
2363 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_print_add_link()
2364 l->block_ref_to->logical_bytenr, in btrfsic_print_add_link()
2365 l->block_ref_to->dev_state->name, l->block_ref_to->dev_bytenr, in btrfsic_print_add_link()
2366 l->block_ref_to->mirror_num); in btrfsic_print_add_link()
2370 const struct btrfsic_block_link *l) in btrfsic_print_rem_link() argument
2373 l->ref_cnt, in btrfsic_print_rem_link()
2374 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_print_rem_link()
2375 l->block_ref_from->logical_bytenr, in btrfsic_print_rem_link()
2376 l->block_ref_from->dev_state->name, in btrfsic_print_rem_link()
2377 l->block_ref_from->dev_bytenr, l->block_ref_from->mirror_num, in btrfsic_print_rem_link()
2378 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_print_rem_link()
2379 l->block_ref_to->logical_bytenr, in btrfsic_print_rem_link()
2380 l->block_ref_to->dev_state->name, l->block_ref_to->dev_bytenr, in btrfsic_print_rem_link()
2381 l->block_ref_to->mirror_num); in btrfsic_print_rem_link()
2408 const struct btrfsic_block_link *l; in btrfsic_dump_tree_sub() local
2443 list_for_each_entry(l, &block->ref_to_list, node_ref_to) { in btrfsic_dump_tree_sub()
2448 if (l->ref_cnt > 1) in btrfsic_dump_tree_sub()
2449 indent_add = sprintf(buf, " %d*--> ", l->ref_cnt); in btrfsic_dump_tree_sub()
2461 btrfsic_dump_tree_sub(state, l->block_ref_to, in btrfsic_dump_tree_sub()
2474 struct btrfsic_block_link *l; in btrfsic_block_link_lookup_or_add() local
2476 l = btrfsic_block_link_hashtable_lookup(next_block_ctx->dev->bdev, in btrfsic_block_link_lookup_or_add()
2481 if (NULL == l) { in btrfsic_block_link_lookup_or_add()
2482 l = btrfsic_block_link_alloc(); in btrfsic_block_link_lookup_or_add()
2483 if (!l) in btrfsic_block_link_lookup_or_add()
2486 l->block_ref_to = next_block; in btrfsic_block_link_lookup_or_add()
2487 l->block_ref_from = from_block; in btrfsic_block_link_lookup_or_add()
2488 l->ref_cnt = 1; in btrfsic_block_link_lookup_or_add()
2489 l->parent_generation = parent_generation; in btrfsic_block_link_lookup_or_add()
2492 btrfsic_print_add_link(state, l); in btrfsic_block_link_lookup_or_add()
2494 list_add(&l->node_ref_to, &from_block->ref_to_list); in btrfsic_block_link_lookup_or_add()
2495 list_add(&l->node_ref_from, &next_block->ref_from_list); in btrfsic_block_link_lookup_or_add()
2497 btrfsic_block_link_hashtable_add(l, in btrfsic_block_link_lookup_or_add()
2500 l->ref_cnt++; in btrfsic_block_link_lookup_or_add()
2501 l->parent_generation = parent_generation; in btrfsic_block_link_lookup_or_add()
2503 btrfsic_print_add_link(state, l); in btrfsic_block_link_lookup_or_add()
2506 return l; in btrfsic_block_link_lookup_or_add()
2832 struct btrfsic_block_link *l, *tmp; in btrfsic_unmount() local
2834 list_for_each_entry_safe(l, tmp, &b_all->ref_to_list, in btrfsic_unmount()
2837 btrfsic_print_rem_link(state, l); in btrfsic_unmount()
2839 l->ref_cnt--; in btrfsic_unmount()
2840 if (0 == l->ref_cnt) in btrfsic_unmount()
2841 btrfsic_block_link_free(l); in btrfsic_unmount()