Lines Matching refs:l

282 		struct btrfsic_block_link *l,
284 static void btrfsic_block_link_hashtable_remove(struct btrfsic_block_link *l);
355 const struct btrfsic_block_link *l);
357 const struct btrfsic_block_link *l);
442 static void btrfsic_block_link_init(struct btrfsic_block_link *l) in btrfsic_block_link_init() argument
444 l->magic_num = BTRFSIC_BLOCK_LINK_MAGIC_NUMBER; in btrfsic_block_link_init()
445 l->ref_cnt = 1; in btrfsic_block_link_init()
446 INIT_LIST_HEAD(&l->node_ref_to); in btrfsic_block_link_init()
447 INIT_LIST_HEAD(&l->node_ref_from); in btrfsic_block_link_init()
448 INIT_LIST_HEAD(&l->collision_resolving_node); in btrfsic_block_link_init()
449 l->block_ref_to = NULL; in btrfsic_block_link_init()
450 l->block_ref_from = NULL; in btrfsic_block_link_init()
455 struct btrfsic_block_link *l; in btrfsic_block_link_alloc() local
457 l = kzalloc(sizeof(*l), GFP_NOFS); in btrfsic_block_link_alloc()
458 if (NULL != l) in btrfsic_block_link_alloc()
459 btrfsic_block_link_init(l); in btrfsic_block_link_alloc()
461 return l; in btrfsic_block_link_alloc()
464 static void btrfsic_block_link_free(struct btrfsic_block_link *l) in btrfsic_block_link_free() argument
466 BUG_ON(!(NULL == l || BTRFSIC_BLOCK_LINK_MAGIC_NUMBER == l->magic_num)); in btrfsic_block_link_free()
467 kfree(l); in btrfsic_block_link_free()
558 struct btrfsic_block_link *l, in btrfsic_block_link_hashtable_add() argument
562 (((unsigned int)(l->block_ref_to->dev_bytenr >> 16)) ^ in btrfsic_block_link_hashtable_add()
563 ((unsigned int)(l->block_ref_from->dev_bytenr >> 16)) ^ in btrfsic_block_link_hashtable_add()
564 ((unsigned int)((uintptr_t)l->block_ref_to->dev_state->bdev)) ^ in btrfsic_block_link_hashtable_add()
565 ((unsigned int)((uintptr_t)l->block_ref_from->dev_state->bdev))) in btrfsic_block_link_hashtable_add()
568 BUG_ON(NULL == l->block_ref_to); in btrfsic_block_link_hashtable_add()
569 BUG_ON(NULL == l->block_ref_from); in btrfsic_block_link_hashtable_add()
570 list_add(&l->collision_resolving_node, h->table + hashval); in btrfsic_block_link_hashtable_add()
573 static void btrfsic_block_link_hashtable_remove(struct btrfsic_block_link *l) in btrfsic_block_link_hashtable_remove() argument
575 list_del(&l->collision_resolving_node); in btrfsic_block_link_hashtable_remove()
594 struct btrfsic_block_link *const l = in btrfsic_block_link_hashtable_lookup() local
598 BUG_ON(NULL == l->block_ref_to); in btrfsic_block_link_hashtable_lookup()
599 BUG_ON(NULL == l->block_ref_from); in btrfsic_block_link_hashtable_lookup()
600 if (l->block_ref_to->dev_state->bdev == bdev_ref_to && in btrfsic_block_link_hashtable_lookup()
601 l->block_ref_to->dev_bytenr == dev_bytenr_ref_to && in btrfsic_block_link_hashtable_lookup()
602 l->block_ref_from->dev_state->bdev == bdev_ref_from && in btrfsic_block_link_hashtable_lookup()
603 l->block_ref_from->dev_bytenr == dev_bytenr_ref_from) in btrfsic_block_link_hashtable_lookup()
604 return l; in btrfsic_block_link_hashtable_lookup()
739 struct btrfsic_block_link *l; in btrfsic_process_superblock() local
760 l = btrfsic_block_link_hashtable_lookup( in btrfsic_process_superblock()
767 BUG_ON(NULL == l); in btrfsic_process_superblock()
912 struct btrfsic_block_link *l; in btrfsic_process_superblock_dev_mirror() local
937 l = btrfsic_block_link_lookup_or_add( in btrfsic_process_superblock_dev_mirror()
942 if (NULL == l) { in btrfsic_process_superblock_dev_mirror()
1278 struct btrfsic_block_link *l; in btrfsic_create_link_to_next_block() local
1324 l = NULL; in btrfsic_create_link_to_next_block()
1349 l = btrfsic_block_link_hashtable_lookup( in btrfsic_create_link_to_next_block()
1358 if (NULL == l) { in btrfsic_create_link_to_next_block()
1359 l = btrfsic_block_link_alloc(); in btrfsic_create_link_to_next_block()
1360 if (NULL == l) { in btrfsic_create_link_to_next_block()
1368 l->block_ref_to = next_block; in btrfsic_create_link_to_next_block()
1369 l->block_ref_from = block; in btrfsic_create_link_to_next_block()
1370 l->ref_cnt = 1; in btrfsic_create_link_to_next_block()
1371 l->parent_generation = parent_generation; in btrfsic_create_link_to_next_block()
1374 btrfsic_print_add_link(state, l); in btrfsic_create_link_to_next_block()
1376 list_add(&l->node_ref_to, &block->ref_to_list); in btrfsic_create_link_to_next_block()
1377 list_add(&l->node_ref_from, &next_block->ref_from_list); in btrfsic_create_link_to_next_block()
1379 btrfsic_block_link_hashtable_add(l, in btrfsic_create_link_to_next_block()
1384 l->ref_cnt++; in btrfsic_create_link_to_next_block()
1385 l->parent_generation = parent_generation; in btrfsic_create_link_to_next_block()
1387 btrfsic_print_add_link(state, l); in btrfsic_create_link_to_next_block()
1423 struct btrfsic_block_link *l; in btrfsic_handle_extent_data() local
1552 l = btrfsic_block_link_lookup_or_add(state, in btrfsic_handle_extent_data()
1557 if (NULL == l) in btrfsic_handle_extent_data()
1741 const struct btrfsic_block_link *const l = in btrfsic_dump_database() local
1752 l->ref_cnt, in btrfsic_dump_database()
1753 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_dump_database()
1754 l->block_ref_to->logical_bytenr, in btrfsic_dump_database()
1755 l->block_ref_to->dev_state->name, in btrfsic_dump_database()
1756 l->block_ref_to->dev_bytenr, in btrfsic_dump_database()
1757 l->block_ref_to->mirror_num); in btrfsic_dump_database()
1761 const struct btrfsic_block_link *const l = in btrfsic_dump_database() local
1772 l->ref_cnt, in btrfsic_dump_database()
1773 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_dump_database()
1774 l->block_ref_from->logical_bytenr, in btrfsic_dump_database()
1775 l->block_ref_from->dev_state->name, in btrfsic_dump_database()
1776 l->block_ref_from->dev_bytenr, in btrfsic_dump_database()
1777 l->block_ref_from->mirror_num); in btrfsic_dump_database()
1972 struct btrfsic_block_link *const l = in btrfsic_process_written_block() local
1978 btrfsic_print_rem_link(state, l); in btrfsic_process_written_block()
1979 l->ref_cnt--; in btrfsic_process_written_block()
1980 if (0 == l->ref_cnt) { in btrfsic_process_written_block()
1981 list_del(&l->node_ref_to); in btrfsic_process_written_block()
1982 list_del(&l->node_ref_from); in btrfsic_process_written_block()
1983 btrfsic_block_link_hashtable_remove(l); in btrfsic_process_written_block()
1984 btrfsic_block_link_free(l); in btrfsic_process_written_block()
2332 struct btrfsic_block_link *l; in btrfsic_process_written_superblock() local
2417 l = btrfsic_block_link_lookup_or_add( in btrfsic_process_written_superblock()
2424 if (NULL == l) in btrfsic_process_written_superblock()
2468 const struct btrfsic_block_link *const l = in btrfsic_check_all_ref_blocks() local
2480 l->ref_cnt, in btrfsic_check_all_ref_blocks()
2481 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2482 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2483 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2484 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2485 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2486 if (l->block_ref_to->never_written) { in btrfsic_check_all_ref_blocks()
2490 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2491 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2492 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2493 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2494 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2496 } else if (!l->block_ref_to->is_iodone) { in btrfsic_check_all_ref_blocks()
2500 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2501 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2502 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2503 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2504 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2506 } else if (l->block_ref_to->iodone_w_error) { in btrfsic_check_all_ref_blocks()
2510 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2511 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2512 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2513 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2514 l->block_ref_to->mirror_num); in btrfsic_check_all_ref_blocks()
2516 } else if (l->parent_generation != in btrfsic_check_all_ref_blocks()
2517 l->block_ref_to->generation && in btrfsic_check_all_ref_blocks()
2519 l->parent_generation && in btrfsic_check_all_ref_blocks()
2521 l->block_ref_to->generation) { in btrfsic_check_all_ref_blocks()
2526 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2527 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2528 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2529 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2530 l->block_ref_to->mirror_num, in btrfsic_check_all_ref_blocks()
2531 l->block_ref_to->generation, in btrfsic_check_all_ref_blocks()
2532 l->parent_generation); in btrfsic_check_all_ref_blocks()
2534 } else if (l->block_ref_to->flush_gen > in btrfsic_check_all_ref_blocks()
2535 l->block_ref_to->dev_state->last_flush_gen) { in btrfsic_check_all_ref_blocks()
2541 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_check_all_ref_blocks()
2542 l->block_ref_to->logical_bytenr, in btrfsic_check_all_ref_blocks()
2543 l->block_ref_to->dev_state->name, in btrfsic_check_all_ref_blocks()
2544 l->block_ref_to->dev_bytenr, in btrfsic_check_all_ref_blocks()
2545 l->block_ref_to->mirror_num, block->flush_gen, in btrfsic_check_all_ref_blocks()
2546 l->block_ref_to->dev_state->last_flush_gen); in btrfsic_check_all_ref_blocks()
2549 l->block_ref_to, in btrfsic_check_all_ref_blocks()
2580 const struct btrfsic_block_link *const l = in btrfsic_is_block_ref_by_superblock() local
2592 l->ref_cnt, in btrfsic_is_block_ref_by_superblock()
2593 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_is_block_ref_by_superblock()
2594 l->block_ref_from->logical_bytenr, in btrfsic_is_block_ref_by_superblock()
2595 l->block_ref_from->dev_state->name, in btrfsic_is_block_ref_by_superblock()
2596 l->block_ref_from->dev_bytenr, in btrfsic_is_block_ref_by_superblock()
2597 l->block_ref_from->mirror_num); in btrfsic_is_block_ref_by_superblock()
2598 if (l->block_ref_from->is_superblock && in btrfsic_is_block_ref_by_superblock()
2600 l->block_ref_from->dev_bytenr && in btrfsic_is_block_ref_by_superblock()
2602 l->block_ref_from->dev_state->bdev) in btrfsic_is_block_ref_by_superblock()
2605 l->block_ref_from, in btrfsic_is_block_ref_by_superblock()
2615 const struct btrfsic_block_link *l) in btrfsic_print_add_link() argument
2620 l->ref_cnt, in btrfsic_print_add_link()
2621 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_print_add_link()
2622 l->block_ref_from->logical_bytenr, in btrfsic_print_add_link()
2623 l->block_ref_from->dev_state->name, in btrfsic_print_add_link()
2624 l->block_ref_from->dev_bytenr, l->block_ref_from->mirror_num, in btrfsic_print_add_link()
2625 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_print_add_link()
2626 l->block_ref_to->logical_bytenr, in btrfsic_print_add_link()
2627 l->block_ref_to->dev_state->name, l->block_ref_to->dev_bytenr, in btrfsic_print_add_link()
2628 l->block_ref_to->mirror_num); in btrfsic_print_add_link()
2632 const struct btrfsic_block_link *l) in btrfsic_print_rem_link() argument
2637 l->ref_cnt, in btrfsic_print_rem_link()
2638 btrfsic_get_block_type(state, l->block_ref_from), in btrfsic_print_rem_link()
2639 l->block_ref_from->logical_bytenr, in btrfsic_print_rem_link()
2640 l->block_ref_from->dev_state->name, in btrfsic_print_rem_link()
2641 l->block_ref_from->dev_bytenr, l->block_ref_from->mirror_num, in btrfsic_print_rem_link()
2642 btrfsic_get_block_type(state, l->block_ref_to), in btrfsic_print_rem_link()
2643 l->block_ref_to->logical_bytenr, in btrfsic_print_rem_link()
2644 l->block_ref_to->dev_state->name, l->block_ref_to->dev_bytenr, in btrfsic_print_rem_link()
2645 l->block_ref_to->mirror_num); in btrfsic_print_rem_link()
2708 const struct btrfsic_block_link *const l = in btrfsic_dump_tree_sub() local
2716 if (l->ref_cnt > 1) in btrfsic_dump_tree_sub()
2717 indent_add = sprintf(buf, " %d*--> ", l->ref_cnt); in btrfsic_dump_tree_sub()
2729 btrfsic_dump_tree_sub(state, l->block_ref_to, in btrfsic_dump_tree_sub()
2742 struct btrfsic_block_link *l; in btrfsic_block_link_lookup_or_add() local
2744 l = btrfsic_block_link_hashtable_lookup(next_block_ctx->dev->bdev, in btrfsic_block_link_lookup_or_add()
2749 if (NULL == l) { in btrfsic_block_link_lookup_or_add()
2750 l = btrfsic_block_link_alloc(); in btrfsic_block_link_lookup_or_add()
2751 if (NULL == l) { in btrfsic_block_link_lookup_or_add()
2757 l->block_ref_to = next_block; in btrfsic_block_link_lookup_or_add()
2758 l->block_ref_from = from_block; in btrfsic_block_link_lookup_or_add()
2759 l->ref_cnt = 1; in btrfsic_block_link_lookup_or_add()
2760 l->parent_generation = parent_generation; in btrfsic_block_link_lookup_or_add()
2763 btrfsic_print_add_link(state, l); in btrfsic_block_link_lookup_or_add()
2765 list_add(&l->node_ref_to, &from_block->ref_to_list); in btrfsic_block_link_lookup_or_add()
2766 list_add(&l->node_ref_from, &next_block->ref_from_list); in btrfsic_block_link_lookup_or_add()
2768 btrfsic_block_link_hashtable_add(l, in btrfsic_block_link_lookup_or_add()
2771 l->ref_cnt++; in btrfsic_block_link_lookup_or_add()
2772 l->parent_generation = parent_generation; in btrfsic_block_link_lookup_or_add()
2774 btrfsic_print_add_link(state, l); in btrfsic_block_link_lookup_or_add()
2777 return l; in btrfsic_block_link_lookup_or_add()
3218 struct btrfsic_block_link *const l = in btrfsic_unmount() local
3224 btrfsic_print_rem_link(state, l); in btrfsic_unmount()
3226 l->ref_cnt--; in btrfsic_unmount()
3227 if (0 == l->ref_cnt) in btrfsic_unmount()
3228 btrfsic_block_link_free(l); in btrfsic_unmount()