Lines Matching refs:block_ctx

225 	struct btrfsic_block_data_ctx *block_ctx;  member
248 struct btrfsic_block_data_ctx *block_ctx,
251 struct btrfsic_block_data_ctx *block_ctx,
257 *block_ctx, u64 next_bytenr,
267 struct btrfsic_block_data_ctx *block_ctx,
272 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx);
274 struct btrfsic_block_data_ctx *block_ctx);
304 struct btrfsic_block_data_ctx *block_ctx,
898 sf->block_ctx = first_block_ctx; in btrfsic_process_metablock()
914 sf->block_ctx->start, sf->nr, in btrfsic_process_metablock()
938 sf->block_ctx->len) { in btrfsic_process_metablock()
942 sf->block_ctx->start, in btrfsic_process_metablock()
943 sf->block_ctx->dev->bdev); in btrfsic_process_metablock()
946 btrfsic_read_from_block_data(sf->block_ctx, in btrfsic_process_metablock()
963 sf->block_ctx->len) in btrfsic_process_metablock()
966 sf->block_ctx, &root_item, in btrfsic_process_metablock()
975 sf->block_ctx, in btrfsic_process_metablock()
1006 next_stack->block_ctx = in btrfsic_process_metablock()
1021 sf->block_ctx, in btrfsic_process_metablock()
1038 sf->block_ctx->start, in btrfsic_process_metablock()
1060 sf->block_ctx->len) { in btrfsic_process_metablock()
1063 sf->block_ctx->start, in btrfsic_process_metablock()
1064 sf->block_ctx->dev->bdev); in btrfsic_process_metablock()
1068 sf->block_ctx, &key_ptr, key_ptr_offset, in btrfsic_process_metablock()
1075 sf->block_ctx, in btrfsic_process_metablock()
1101 next_stack->block_ctx = &sf->next_block_ctx; in btrfsic_process_metablock()
1120 btrfsic_release_block_ctx(sf->block_ctx); in btrfsic_process_metablock()
1140 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_read_from_block_data() argument
1147 size_t start_offset = offset_in_page(block_ctx->start); in btrfsic_read_from_block_data()
1150 WARN_ON(offset + len > block_ctx->len); in btrfsic_read_from_block_data()
1155 BUG_ON(i >= DIV_ROUND_UP(block_ctx->len, PAGE_SIZE)); in btrfsic_read_from_block_data()
1156 kaddr = block_ctx->datav[i]; in btrfsic_read_from_block_data()
1169 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_create_link_to_next_block() argument
1253 block_ctx->dev->bdev, in btrfsic_create_link_to_next_block()
1254 block_ctx->dev_bytenr, in btrfsic_create_link_to_next_block()
1313 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_handle_extent_data() argument
1329 block_ctx->len) { in btrfsic_handle_extent_data()
1331 block_ctx->start, block_ctx->dev->bdev); in btrfsic_handle_extent_data()
1335 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1349 block_ctx->len) { in btrfsic_handle_extent_data()
1351 block_ctx->start, block_ctx->dev->bdev); in btrfsic_handle_extent_data()
1354 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1509 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx) in btrfsic_release_block_ctx() argument
1511 if (block_ctx->mem_to_free) { in btrfsic_release_block_ctx()
1514 BUG_ON(!block_ctx->datav); in btrfsic_release_block_ctx()
1515 BUG_ON(!block_ctx->pagev); in btrfsic_release_block_ctx()
1516 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_release_block_ctx()
1521 if (block_ctx->datav[num_pages]) in btrfsic_release_block_ctx()
1522 block_ctx->datav[num_pages] = NULL; in btrfsic_release_block_ctx()
1523 if (block_ctx->pagev[num_pages]) { in btrfsic_release_block_ctx()
1524 __free_page(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1525 block_ctx->pagev[num_pages] = NULL; in btrfsic_release_block_ctx()
1529 kfree(block_ctx->mem_to_free); in btrfsic_release_block_ctx()
1530 block_ctx->mem_to_free = NULL; in btrfsic_release_block_ctx()
1531 block_ctx->pagev = NULL; in btrfsic_release_block_ctx()
1532 block_ctx->datav = NULL; in btrfsic_release_block_ctx()
1537 struct btrfsic_block_data_ctx *block_ctx) in btrfsic_read_block() argument
1545 BUG_ON(block_ctx->datav); in btrfsic_read_block()
1546 BUG_ON(block_ctx->pagev); in btrfsic_read_block()
1547 BUG_ON(block_ctx->mem_to_free); in btrfsic_read_block()
1548 if (!PAGE_ALIGNED(block_ctx->dev_bytenr)) { in btrfsic_read_block()
1550 block_ctx->dev_bytenr); in btrfsic_read_block()
1554 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_read_block()
1556 size = sizeof(*block_ctx->datav) + sizeof(*block_ctx->pagev); in btrfsic_read_block()
1557 block_ctx->mem_to_free = kcalloc(num_pages, size, GFP_NOFS); in btrfsic_read_block()
1558 if (!block_ctx->mem_to_free) in btrfsic_read_block()
1560 block_ctx->datav = block_ctx->mem_to_free; in btrfsic_read_block()
1561 block_ctx->pagev = (struct page **)(block_ctx->datav + num_pages); in btrfsic_read_block()
1562 ret = btrfs_alloc_page_array(num_pages, block_ctx->pagev); in btrfsic_read_block()
1566 dev_bytenr = block_ctx->dev_bytenr; in btrfsic_read_block()
1571 bio = bio_alloc(block_ctx->dev->bdev, num_pages - i, in btrfsic_read_block()
1576 ret = bio_add_page(bio, block_ctx->pagev[j], in btrfsic_read_block()
1587 block_ctx->start, block_ctx->dev->bdev); in btrfsic_read_block()
1596 block_ctx->datav[i] = page_address(block_ctx->pagev[i]); in btrfsic_read_block()
1598 return block_ctx->len; in btrfsic_read_block()
1695 struct btrfsic_block_data_ctx block_ctx; in btrfsic_process_written_block() local
1839 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1840 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1841 block_ctx.start = bytenr; in btrfsic_process_written_block()
1842 block_ctx.len = processed_len; in btrfsic_process_written_block()
1843 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1844 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1845 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1906 &block_ctx, in btrfsic_process_written_block()
1929 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
1961 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1962 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1963 block_ctx.start = bytenr; in btrfsic_process_written_block()
1964 block_ctx.len = processed_len; in btrfsic_process_written_block()
1965 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1966 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1967 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1971 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2022 &block_ctx, 0, 0); in btrfsic_process_written_block()
2027 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2535 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_block_lookup_or_add() argument
2545 block = btrfsic_block_hashtable_lookup(block_ctx->dev->bdev, in btrfsic_block_lookup_or_add()
2546 block_ctx->dev_bytenr, in btrfsic_block_lookup_or_add()
2555 dev_state = btrfsic_dev_state_lookup(block_ctx->dev->bdev->bd_dev); in btrfsic_block_lookup_or_add()
2562 block->dev_bytenr = block_ctx->dev_bytenr; in btrfsic_block_lookup_or_add()
2563 block->logical_bytenr = block_ctx->start; in btrfsic_block_lookup_or_add()
2592 struct btrfsic_block_data_ctx block_ctx; in btrfsic_cmp_log_and_dev_bytenr() local
2602 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2609 if (dev_state->bdev == block_ctx.dev->bdev && in btrfsic_cmp_log_and_dev_bytenr()
2610 dev_bytenr == block_ctx.dev_bytenr) { in btrfsic_cmp_log_and_dev_bytenr()
2612 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2615 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2625 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2630 bytenr, block_ctx.dev->bdev, in btrfsic_cmp_log_and_dev_bytenr()
2631 block_ctx.dev_bytenr, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()