Lines Matching refs:block_ctx
229 struct btrfsic_block_data_ctx *block_ctx; member
294 struct btrfsic_block_data_ctx *block_ctx,
297 struct btrfsic_block_data_ctx *block_ctx,
303 *block_ctx, u64 next_bytenr,
313 struct btrfsic_block_data_ctx *block_ctx,
318 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx);
320 struct btrfsic_block_data_ctx *block_ctx);
360 struct btrfsic_block_data_ctx *block_ctx,
961 sf->block_ctx = first_block_ctx; in btrfsic_process_metablock()
977 sf->block_ctx->start, sf->nr, in btrfsic_process_metablock()
1001 sf->block_ctx->len) { in btrfsic_process_metablock()
1004 sf->block_ctx->start, in btrfsic_process_metablock()
1005 sf->block_ctx->dev->name); in btrfsic_process_metablock()
1008 btrfsic_read_from_block_data(sf->block_ctx, in btrfsic_process_metablock()
1025 sf->block_ctx->len) in btrfsic_process_metablock()
1028 sf->block_ctx, &root_item, in btrfsic_process_metablock()
1037 sf->block_ctx, in btrfsic_process_metablock()
1068 next_stack->block_ctx = in btrfsic_process_metablock()
1083 sf->block_ctx, in btrfsic_process_metablock()
1100 sf->block_ctx->start, in btrfsic_process_metablock()
1122 sf->block_ctx->len) { in btrfsic_process_metablock()
1124 sf->block_ctx->start, in btrfsic_process_metablock()
1125 sf->block_ctx->dev->name); in btrfsic_process_metablock()
1129 sf->block_ctx, &key_ptr, key_ptr_offset, in btrfsic_process_metablock()
1136 sf->block_ctx, in btrfsic_process_metablock()
1162 next_stack->block_ctx = &sf->next_block_ctx; in btrfsic_process_metablock()
1181 btrfsic_release_block_ctx(sf->block_ctx); in btrfsic_process_metablock()
1201 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_read_from_block_data() argument
1208 size_t start_offset = offset_in_page(block_ctx->start); in btrfsic_read_from_block_data()
1211 WARN_ON(offset + len > block_ctx->len); in btrfsic_read_from_block_data()
1216 BUG_ON(i >= DIV_ROUND_UP(block_ctx->len, PAGE_SIZE)); in btrfsic_read_from_block_data()
1217 kaddr = block_ctx->datav[i]; in btrfsic_read_from_block_data()
1230 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_create_link_to_next_block() argument
1312 block_ctx->dev->bdev, in btrfsic_create_link_to_next_block()
1313 block_ctx->dev_bytenr, in btrfsic_create_link_to_next_block()
1373 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_handle_extent_data() argument
1389 block_ctx->len) { in btrfsic_handle_extent_data()
1391 block_ctx->start, block_ctx->dev->name); in btrfsic_handle_extent_data()
1395 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1409 block_ctx->len) { in btrfsic_handle_extent_data()
1411 block_ctx->start, block_ctx->dev->name); in btrfsic_handle_extent_data()
1414 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1564 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx) in btrfsic_release_block_ctx() argument
1566 if (block_ctx->mem_to_free) { in btrfsic_release_block_ctx()
1569 BUG_ON(!block_ctx->datav); in btrfsic_release_block_ctx()
1570 BUG_ON(!block_ctx->pagev); in btrfsic_release_block_ctx()
1571 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_release_block_ctx()
1575 if (block_ctx->datav[num_pages]) { in btrfsic_release_block_ctx()
1576 kunmap(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1577 block_ctx->datav[num_pages] = NULL; in btrfsic_release_block_ctx()
1579 if (block_ctx->pagev[num_pages]) { in btrfsic_release_block_ctx()
1580 __free_page(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1581 block_ctx->pagev[num_pages] = NULL; in btrfsic_release_block_ctx()
1585 kfree(block_ctx->mem_to_free); in btrfsic_release_block_ctx()
1586 block_ctx->mem_to_free = NULL; in btrfsic_release_block_ctx()
1587 block_ctx->pagev = NULL; in btrfsic_release_block_ctx()
1588 block_ctx->datav = NULL; in btrfsic_release_block_ctx()
1593 struct btrfsic_block_data_ctx *block_ctx) in btrfsic_read_block() argument
1601 BUG_ON(block_ctx->datav); in btrfsic_read_block()
1602 BUG_ON(block_ctx->pagev); in btrfsic_read_block()
1603 BUG_ON(block_ctx->mem_to_free); in btrfsic_read_block()
1604 if (!PAGE_ALIGNED(block_ctx->dev_bytenr)) { in btrfsic_read_block()
1606 block_ctx->dev_bytenr); in btrfsic_read_block()
1610 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_read_block()
1612 size = sizeof(*block_ctx->datav) + sizeof(*block_ctx->pagev); in btrfsic_read_block()
1613 block_ctx->mem_to_free = kcalloc(num_pages, size, GFP_NOFS); in btrfsic_read_block()
1614 if (!block_ctx->mem_to_free) in btrfsic_read_block()
1616 block_ctx->datav = block_ctx->mem_to_free; in btrfsic_read_block()
1617 block_ctx->pagev = (struct page **)(block_ctx->datav + num_pages); in btrfsic_read_block()
1619 block_ctx->pagev[i] = alloc_page(GFP_NOFS); in btrfsic_read_block()
1620 if (!block_ctx->pagev[i]) in btrfsic_read_block()
1624 dev_bytenr = block_ctx->dev_bytenr; in btrfsic_read_block()
1630 bio_set_dev(bio, block_ctx->dev->bdev); in btrfsic_read_block()
1635 ret = bio_add_page(bio, block_ctx->pagev[j], in btrfsic_read_block()
1646 block_ctx->start, block_ctx->dev->name); in btrfsic_read_block()
1655 block_ctx->datav[i] = kmap(block_ctx->pagev[i]); in btrfsic_read_block()
1657 return block_ctx->len; in btrfsic_read_block()
1753 struct btrfsic_block_data_ctx block_ctx; in btrfsic_process_written_block() local
1892 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1893 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1894 block_ctx.start = bytenr; in btrfsic_process_written_block()
1895 block_ctx.len = processed_len; in btrfsic_process_written_block()
1896 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1897 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1898 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1967 &block_ctx, in btrfsic_process_written_block()
1990 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2020 block_ctx.dev = dev_state; in btrfsic_process_written_block()
2021 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
2022 block_ctx.start = bytenr; in btrfsic_process_written_block()
2023 block_ctx.len = processed_len; in btrfsic_process_written_block()
2024 block_ctx.pagev = NULL; in btrfsic_process_written_block()
2025 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
2026 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
2031 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2089 &block_ctx, 0, 0); in btrfsic_process_written_block()
2094 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2628 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_block_lookup_or_add() argument
2638 block = btrfsic_block_hashtable_lookup(block_ctx->dev->bdev, in btrfsic_block_lookup_or_add()
2639 block_ctx->dev_bytenr, in btrfsic_block_lookup_or_add()
2649 dev_state = btrfsic_dev_state_lookup(block_ctx->dev->bdev->bd_dev); in btrfsic_block_lookup_or_add()
2656 block->dev_bytenr = block_ctx->dev_bytenr; in btrfsic_block_lookup_or_add()
2657 block->logical_bytenr = block_ctx->start; in btrfsic_block_lookup_or_add()
2686 struct btrfsic_block_data_ctx block_ctx; in btrfsic_cmp_log_and_dev_bytenr() local
2696 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2703 if (dev_state->bdev == block_ctx.dev->bdev && in btrfsic_cmp_log_and_dev_bytenr()
2704 dev_bytenr == block_ctx.dev_bytenr) { in btrfsic_cmp_log_and_dev_bytenr()
2706 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2709 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2718 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2723 bytenr, block_ctx.dev->name, in btrfsic_cmp_log_and_dev_bytenr()
2724 block_ctx.dev_bytenr, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()