Lines Matching refs:block

239 	struct btrfsic_block *block;  member
305 struct btrfsic_block *block,
313 struct btrfsic_block *block,
324 struct btrfsic_block *block,
344 struct btrfsic_block *const block,
349 const struct btrfsic_block *block,
352 struct btrfsic_block *const block,
359 const struct btrfsic_block *block);
362 const struct btrfsic_block *block,
991 sf->block = first_block; in btrfsic_process_metablock()
998 sf->block->generation = le64_to_cpu(sf->hdr->generation); in btrfsic_process_metablock()
1070 sf->block, in btrfsic_process_metablock()
1101 next_stack->block = sf->next_block; in btrfsic_process_metablock()
1116 sf->block, in btrfsic_process_metablock()
1171 sf->block, in btrfsic_process_metablock()
1197 next_stack->block = sf->next_block; in btrfsic_process_metablock()
1265 struct btrfsic_block *block, in btrfsic_create_link_to_next_block() argument
1369 l->block_ref_from = block; 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()
1413 struct btrfsic_block *block, in btrfsic_handle_extent_data() argument
1554 next_block, block, in btrfsic_handle_extent_data()
1826 struct btrfsic_block *block; in btrfsic_process_written_block() local
1844 block = btrfsic_block_hashtable_lookup(bdev, dev_bytenr, in btrfsic_process_written_block()
1846 if (NULL != block) { in btrfsic_process_written_block()
1851 if (block->is_superblock) { in btrfsic_process_written_block()
1867 btrfsic_dump_tree_sub(state, block, 0); in btrfsic_process_written_block()
1871 if (!block->is_superblock) { in btrfsic_process_written_block()
1887 if (block->logical_bytenr != bytenr && in btrfsic_process_written_block()
1888 !(!block->is_metadata && in btrfsic_process_written_block()
1889 block->logical_bytenr == 0)) in btrfsic_process_written_block()
1894 block->mirror_num, in btrfsic_process_written_block()
1896 block), in btrfsic_process_written_block()
1897 block->logical_bytenr); in btrfsic_process_written_block()
1902 dev_bytenr, block->mirror_num, in btrfsic_process_written_block()
1904 block)); in btrfsic_process_written_block()
1906 block->logical_bytenr = bytenr; in btrfsic_process_written_block()
1915 bytenr = block->logical_bytenr; in btrfsic_process_written_block()
1921 block->mirror_num, in btrfsic_process_written_block()
1922 btrfsic_get_block_type(state, block)); in btrfsic_process_written_block()
1928 list_empty(&block->ref_to_list) ? ' ' : '!', in btrfsic_process_written_block()
1929 list_empty(&block->ref_from_list) ? ' ' : '!'); in btrfsic_process_written_block()
1930 if (btrfsic_is_block_ref_by_superblock(state, block, 0)) { in btrfsic_process_written_block()
1937 btrfsic_get_block_type(state, block), bytenr, in btrfsic_process_written_block()
1938 dev_state->name, dev_bytenr, block->mirror_num, in btrfsic_process_written_block()
1939 block->generation, in btrfsic_process_written_block()
1940 btrfs_disk_key_objectid(&block->disk_key), in btrfsic_process_written_block()
1941 block->disk_key.type, in btrfsic_process_written_block()
1942 btrfs_disk_key_offset(&block->disk_key), in btrfsic_process_written_block()
1949 if (!block->is_iodone && !block->never_written) { in btrfsic_process_written_block()
1953 btrfsic_get_block_type(state, block), bytenr, in btrfsic_process_written_block()
1954 dev_state->name, dev_bytenr, block->mirror_num, in btrfsic_process_written_block()
1955 block->generation, in btrfsic_process_written_block()
1971 &block->ref_to_list) { in btrfsic_process_written_block()
1997 block->never_written = 0; in btrfsic_process_written_block()
1998 block->iodone_w_error = 0; in btrfsic_process_written_block()
2000 block->is_iodone = 0; in btrfsic_process_written_block()
2003 block->orig_bio_bh_private = in btrfsic_process_written_block()
2005 block->orig_bio_bh_end_io.bio = in btrfsic_process_written_block()
2007 block->next_in_same_bio = NULL; in btrfsic_process_written_block()
2008 bio->bi_private = block; in btrfsic_process_written_block()
2017 block->orig_bio_bh_private = in btrfsic_process_written_block()
2019 block->orig_bio_bh_end_io.bio = in btrfsic_process_written_block()
2022 block->next_in_same_bio = chained_block; in btrfsic_process_written_block()
2023 bio->bi_private = block; in btrfsic_process_written_block()
2026 block->is_iodone = 0; in btrfsic_process_written_block()
2027 block->orig_bio_bh_private = bh->b_private; in btrfsic_process_written_block()
2028 block->orig_bio_bh_end_io.bh = bh->b_end_io; in btrfsic_process_written_block()
2029 block->next_in_same_bio = NULL; in btrfsic_process_written_block()
2030 bh->b_private = block; in btrfsic_process_written_block()
2033 block->is_iodone = 1; in btrfsic_process_written_block()
2034 block->orig_bio_bh_private = NULL; in btrfsic_process_written_block()
2035 block->orig_bio_bh_end_io.bio = NULL; in btrfsic_process_written_block()
2036 block->next_in_same_bio = NULL; in btrfsic_process_written_block()
2040 block->flush_gen = dev_state->last_flush_gen + 1; in btrfsic_process_written_block()
2041 block->submit_bio_bh_rw = submit_bio_bh_rw; in btrfsic_process_written_block()
2043 block->logical_bytenr = bytenr; in btrfsic_process_written_block()
2044 block->is_metadata = 1; in btrfsic_process_written_block()
2045 if (block->is_superblock) { in btrfsic_process_written_block()
2050 block, in btrfsic_process_written_block()
2057 btrfsic_dump_tree_sub(state, block, 0); in btrfsic_process_written_block()
2060 block->mirror_num = 0; /* unknown */ in btrfsic_process_written_block()
2063 block, in btrfsic_process_written_block()
2073 block->is_metadata = 0; in btrfsic_process_written_block()
2074 block->mirror_num = 0; /* unknown */ in btrfsic_process_written_block()
2075 block->generation = BTRFSIC_GENERATION_UNKNOWN; in btrfsic_process_written_block()
2077 && list_empty(&block->ref_from_list)) { in btrfsic_process_written_block()
2084 btrfsic_block_hashtable_remove(block); in btrfsic_process_written_block()
2085 list_del(&block->all_blocks_node); in btrfsic_process_written_block()
2086 btrfsic_block_free(block); in btrfsic_process_written_block()
2130 block = btrfsic_block_alloc(); in btrfsic_process_written_block()
2131 if (NULL == block) { in btrfsic_process_written_block()
2136 block->dev_state = dev_state; in btrfsic_process_written_block()
2137 block->dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
2138 block->logical_bytenr = bytenr; in btrfsic_process_written_block()
2139 block->is_metadata = is_metadata; in btrfsic_process_written_block()
2140 block->never_written = 0; in btrfsic_process_written_block()
2141 block->iodone_w_error = 0; in btrfsic_process_written_block()
2142 block->mirror_num = 0; /* unknown */ in btrfsic_process_written_block()
2143 block->flush_gen = dev_state->last_flush_gen + 1; in btrfsic_process_written_block()
2144 block->submit_bio_bh_rw = submit_bio_bh_rw; in btrfsic_process_written_block()
2146 block->is_iodone = 0; in btrfsic_process_written_block()
2149 block->orig_bio_bh_private = bio->bi_private; in btrfsic_process_written_block()
2150 block->orig_bio_bh_end_io.bio = bio->bi_end_io; in btrfsic_process_written_block()
2151 block->next_in_same_bio = NULL; in btrfsic_process_written_block()
2152 bio->bi_private = block; in btrfsic_process_written_block()
2161 block->orig_bio_bh_private = in btrfsic_process_written_block()
2163 block->orig_bio_bh_end_io.bio = in btrfsic_process_written_block()
2165 block->next_in_same_bio = chained_block; in btrfsic_process_written_block()
2166 bio->bi_private = block; in btrfsic_process_written_block()
2169 block->is_iodone = 0; in btrfsic_process_written_block()
2170 block->orig_bio_bh_private = bh->b_private; in btrfsic_process_written_block()
2171 block->orig_bio_bh_end_io.bh = bh->b_end_io; in btrfsic_process_written_block()
2172 block->next_in_same_bio = NULL; in btrfsic_process_written_block()
2173 bh->b_private = block; in btrfsic_process_written_block()
2176 block->is_iodone = 1; in btrfsic_process_written_block()
2177 block->orig_bio_bh_private = NULL; in btrfsic_process_written_block()
2178 block->orig_bio_bh_end_io.bio = NULL; in btrfsic_process_written_block()
2179 block->next_in_same_bio = NULL; in btrfsic_process_written_block()
2185 block->logical_bytenr, block->dev_state->name, in btrfsic_process_written_block()
2186 block->dev_bytenr, block->mirror_num); in btrfsic_process_written_block()
2187 list_add(&block->all_blocks_node, &state->all_blocks_list); in btrfsic_process_written_block()
2188 btrfsic_block_hashtable_add(block, &state->block_hashtable); in btrfsic_process_written_block()
2191 ret = btrfsic_process_metablock(state, block, in btrfsic_process_written_block()
2212 struct btrfsic_block *block = (struct btrfsic_block *)bp->bi_private; in btrfsic_bio_end_io() local
2221 BUG_ON(NULL == block); in btrfsic_bio_end_io()
2222 bp->bi_private = block->orig_bio_bh_private; in btrfsic_bio_end_io()
2223 bp->bi_end_io = block->orig_bio_bh_end_io.bio; in btrfsic_bio_end_io()
2227 struct btrfsic_dev_state *const dev_state = block->dev_state; in btrfsic_bio_end_io()
2234 btrfsic_get_block_type(dev_state->state, block), in btrfsic_bio_end_io()
2235 block->logical_bytenr, dev_state->name, in btrfsic_bio_end_io()
2236 block->dev_bytenr, block->mirror_num); in btrfsic_bio_end_io()
2237 next_block = block->next_in_same_bio; in btrfsic_bio_end_io()
2238 block->iodone_w_error = iodone_w_error; in btrfsic_bio_end_io()
2239 if (block->submit_bio_bh_rw & REQ_FLUSH) { in btrfsic_bio_end_io()
2248 if (block->submit_bio_bh_rw & REQ_FUA) in btrfsic_bio_end_io()
2249 block->flush_gen = 0; /* FUA completed means block is in btrfsic_bio_end_io()
2251 block->is_iodone = 1; /* for FLUSH, this releases the block */ in btrfsic_bio_end_io()
2252 block = next_block; in btrfsic_bio_end_io()
2253 } while (NULL != block); in btrfsic_bio_end_io()
2260 struct btrfsic_block *block = (struct btrfsic_block *)bh->b_private; in btrfsic_bh_end_io() local
2264 BUG_ON(NULL == block); in btrfsic_bh_end_io()
2265 dev_state = block->dev_state; in btrfsic_bh_end_io()
2270 btrfsic_get_block_type(dev_state->state, block), in btrfsic_bh_end_io()
2271 block->logical_bytenr, block->dev_state->name, in btrfsic_bh_end_io()
2272 block->dev_bytenr, block->mirror_num); in btrfsic_bh_end_io()
2274 block->iodone_w_error = iodone_w_error; in btrfsic_bh_end_io()
2275 if (block->submit_bio_bh_rw & REQ_FLUSH) { in btrfsic_bh_end_io()
2283 if (block->submit_bio_bh_rw & REQ_FUA) in btrfsic_bh_end_io()
2284 block->flush_gen = 0; /* FUA completed means block is on disk */ in btrfsic_bh_end_io()
2286 bh->b_private = block->orig_bio_bh_private; in btrfsic_bh_end_io()
2287 bh->b_end_io = block->orig_bio_bh_end_io.bh; in btrfsic_bh_end_io()
2288 block->is_iodone = 1; /* for FLUSH, this releases the block */ in btrfsic_bh_end_io()
2436 struct btrfsic_block *const block, in btrfsic_check_all_ref_blocks() argument
2467 list_for_each(elem_ref_to, &block->ref_to_list) { in btrfsic_check_all_ref_blocks()
2477 btrfsic_get_block_type(state, block), in btrfsic_check_all_ref_blocks()
2478 block->logical_bytenr, block->dev_state->name, in btrfsic_check_all_ref_blocks()
2479 block->dev_bytenr, block->mirror_num, in btrfsic_check_all_ref_blocks()
2545 l->block_ref_to->mirror_num, block->flush_gen, in btrfsic_check_all_ref_blocks()
2561 const struct btrfsic_block *block, in btrfsic_is_block_ref_by_superblock() argument
2579 list_for_each(elem_ref_from, &block->ref_from_list) { in btrfsic_is_block_ref_by_superblock()
2589 btrfsic_get_block_type(state, block), in btrfsic_is_block_ref_by_superblock()
2590 block->logical_bytenr, block->dev_state->name, in btrfsic_is_block_ref_by_superblock()
2591 block->dev_bytenr, block->mirror_num, in btrfsic_is_block_ref_by_superblock()
2649 const struct btrfsic_block *block) in btrfsic_get_block_type() argument
2651 if (block->is_superblock && in btrfsic_get_block_type()
2652 state->latest_superblock->dev_bytenr == block->dev_bytenr && in btrfsic_get_block_type()
2653 state->latest_superblock->dev_state->bdev == block->dev_state->bdev) in btrfsic_get_block_type()
2655 else if (block->is_superblock) in btrfsic_get_block_type()
2657 else if (block->is_metadata) in btrfsic_get_block_type()
2669 const struct btrfsic_block *block, in btrfsic_dump_tree_sub() argument
2687 btrfsic_get_block_type(state, block), in btrfsic_dump_tree_sub()
2688 block->logical_bytenr, block->dev_state->name, in btrfsic_dump_tree_sub()
2689 block->dev_bytenr, block->mirror_num); in btrfsic_dump_tree_sub()
2696 if (list_empty(&block->ref_to_list)) { in btrfsic_dump_tree_sub()
2700 if (block->mirror_num > 1 && in btrfsic_dump_tree_sub()
2707 list_for_each(elem_ref_to, &block->ref_to_list) { in btrfsic_dump_tree_sub()
2790 struct btrfsic_block *block; in btrfsic_block_lookup_or_add() local
2792 block = btrfsic_block_hashtable_lookup(block_ctx->dev->bdev, in btrfsic_block_lookup_or_add()
2795 if (NULL == block) { in btrfsic_block_lookup_or_add()
2798 block = btrfsic_block_alloc(); in btrfsic_block_lookup_or_add()
2799 if (NULL == block) { in btrfsic_block_lookup_or_add()
2807 btrfsic_block_free(block); in btrfsic_block_lookup_or_add()
2810 block->dev_state = dev_state; in btrfsic_block_lookup_or_add()
2811 block->dev_bytenr = block_ctx->dev_bytenr; in btrfsic_block_lookup_or_add()
2812 block->logical_bytenr = block_ctx->start; in btrfsic_block_lookup_or_add()
2813 block->is_metadata = is_metadata; in btrfsic_block_lookup_or_add()
2814 block->is_iodone = is_iodone; in btrfsic_block_lookup_or_add()
2815 block->never_written = never_written; in btrfsic_block_lookup_or_add()
2816 block->mirror_num = mirror_num; in btrfsic_block_lookup_or_add()
2821 btrfsic_get_block_type(state, block), in btrfsic_block_lookup_or_add()
2822 block->logical_bytenr, dev_state->name, in btrfsic_block_lookup_or_add()
2823 block->dev_bytenr, mirror_num); in btrfsic_block_lookup_or_add()
2824 list_add(&block->all_blocks_node, &state->all_blocks_list); in btrfsic_block_lookup_or_add()
2825 btrfsic_block_hashtable_add(block, &state->block_hashtable); in btrfsic_block_lookup_or_add()
2833 return block; in btrfsic_block_lookup_or_add()
2944 struct btrfsic_block *const block = in btrfsic_submit_bh() local
2947 block->is_iodone = 0; in btrfsic_submit_bh()
2948 block->never_written = 0; in btrfsic_submit_bh()
2949 block->iodone_w_error = 0; in btrfsic_submit_bh()
2950 block->flush_gen = dev_state->last_flush_gen + 1; in btrfsic_submit_bh()
2951 block->submit_bio_bh_rw = rw; in btrfsic_submit_bh()
2952 block->orig_bio_bh_private = bh->b_private; in btrfsic_submit_bh()
2953 block->orig_bio_bh_end_io.bh = bh->b_end_io; in btrfsic_submit_bh()
2954 block->next_in_same_bio = NULL; in btrfsic_submit_bh()
2955 bh->b_private = block; in btrfsic_submit_bh()
3042 struct btrfsic_block *const block = in __btrfsic_submit_bio() local
3045 block->is_iodone = 0; in __btrfsic_submit_bio()
3046 block->never_written = 0; in __btrfsic_submit_bio()
3047 block->iodone_w_error = 0; in __btrfsic_submit_bio()
3048 block->flush_gen = dev_state->last_flush_gen + 1; in __btrfsic_submit_bio()
3049 block->submit_bio_bh_rw = rw; in __btrfsic_submit_bio()
3050 block->orig_bio_bh_private = bio->bi_private; in __btrfsic_submit_bio()
3051 block->orig_bio_bh_end_io.bio = bio->bi_end_io; in __btrfsic_submit_bio()
3052 block->next_in_same_bio = NULL; in __btrfsic_submit_bio()
3053 bio->bi_private = block; in __btrfsic_submit_bio()