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,
899 sf->block_ctx = first_block_ctx; in btrfsic_process_metablock()
915 sf->block_ctx->start, sf->nr, in btrfsic_process_metablock()
939 sf->block_ctx->len) { in btrfsic_process_metablock()
942 sf->block_ctx->start, in btrfsic_process_metablock()
943 sf->block_ctx->dev->name); 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()
1062 sf->block_ctx->start, in btrfsic_process_metablock()
1063 sf->block_ctx->dev->name); in btrfsic_process_metablock()
1067 sf->block_ctx, &key_ptr, key_ptr_offset, in btrfsic_process_metablock()
1074 sf->block_ctx, in btrfsic_process_metablock()
1100 next_stack->block_ctx = &sf->next_block_ctx; in btrfsic_process_metablock()
1119 btrfsic_release_block_ctx(sf->block_ctx); in btrfsic_process_metablock()
1139 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_read_from_block_data() argument
1146 size_t start_offset = offset_in_page(block_ctx->start); in btrfsic_read_from_block_data()
1149 WARN_ON(offset + len > block_ctx->len); in btrfsic_read_from_block_data()
1154 BUG_ON(i >= DIV_ROUND_UP(block_ctx->len, PAGE_SIZE)); in btrfsic_read_from_block_data()
1155 kaddr = block_ctx->datav[i]; in btrfsic_read_from_block_data()
1168 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_create_link_to_next_block() argument
1250 block_ctx->dev->bdev, in btrfsic_create_link_to_next_block()
1251 block_ctx->dev_bytenr, in btrfsic_create_link_to_next_block()
1310 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_handle_extent_data() argument
1326 block_ctx->len) { in btrfsic_handle_extent_data()
1328 block_ctx->start, block_ctx->dev->name); in btrfsic_handle_extent_data()
1332 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1346 block_ctx->len) { in btrfsic_handle_extent_data()
1348 block_ctx->start, block_ctx->dev->name); in btrfsic_handle_extent_data()
1351 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1500 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx) in btrfsic_release_block_ctx() argument
1502 if (block_ctx->mem_to_free) { in btrfsic_release_block_ctx()
1505 BUG_ON(!block_ctx->datav); in btrfsic_release_block_ctx()
1506 BUG_ON(!block_ctx->pagev); in btrfsic_release_block_ctx()
1507 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_release_block_ctx()
1512 if (block_ctx->datav[num_pages]) in btrfsic_release_block_ctx()
1513 block_ctx->datav[num_pages] = NULL; in btrfsic_release_block_ctx()
1514 if (block_ctx->pagev[num_pages]) { in btrfsic_release_block_ctx()
1515 __free_page(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1516 block_ctx->pagev[num_pages] = NULL; in btrfsic_release_block_ctx()
1520 kfree(block_ctx->mem_to_free); in btrfsic_release_block_ctx()
1521 block_ctx->mem_to_free = NULL; in btrfsic_release_block_ctx()
1522 block_ctx->pagev = NULL; in btrfsic_release_block_ctx()
1523 block_ctx->datav = NULL; in btrfsic_release_block_ctx()
1528 struct btrfsic_block_data_ctx *block_ctx) in btrfsic_read_block() argument
1536 BUG_ON(block_ctx->datav); in btrfsic_read_block()
1537 BUG_ON(block_ctx->pagev); in btrfsic_read_block()
1538 BUG_ON(block_ctx->mem_to_free); in btrfsic_read_block()
1539 if (!PAGE_ALIGNED(block_ctx->dev_bytenr)) { in btrfsic_read_block()
1541 block_ctx->dev_bytenr); in btrfsic_read_block()
1545 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_read_block()
1547 size = sizeof(*block_ctx->datav) + sizeof(*block_ctx->pagev); in btrfsic_read_block()
1548 block_ctx->mem_to_free = kcalloc(num_pages, size, GFP_NOFS); in btrfsic_read_block()
1549 if (!block_ctx->mem_to_free) in btrfsic_read_block()
1551 block_ctx->datav = block_ctx->mem_to_free; in btrfsic_read_block()
1552 block_ctx->pagev = (struct page **)(block_ctx->datav + num_pages); in btrfsic_read_block()
1554 block_ctx->pagev[i] = alloc_page(GFP_NOFS); in btrfsic_read_block()
1555 if (!block_ctx->pagev[i]) in btrfsic_read_block()
1559 dev_bytenr = block_ctx->dev_bytenr; in btrfsic_read_block()
1565 bio_set_dev(bio, block_ctx->dev->bdev); in btrfsic_read_block()
1570 ret = bio_add_page(bio, block_ctx->pagev[j], in btrfsic_read_block()
1581 block_ctx->start, block_ctx->dev->name); in btrfsic_read_block()
1590 block_ctx->datav[i] = page_address(block_ctx->pagev[i]); in btrfsic_read_block()
1592 return block_ctx->len; in btrfsic_read_block()
1687 struct btrfsic_block_data_ctx block_ctx; in btrfsic_process_written_block() local
1826 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1827 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1828 block_ctx.start = bytenr; in btrfsic_process_written_block()
1829 block_ctx.len = processed_len; in btrfsic_process_written_block()
1830 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1831 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1832 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1893 &block_ctx, in btrfsic_process_written_block()
1916 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
1946 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1947 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1948 block_ctx.start = bytenr; in btrfsic_process_written_block()
1949 block_ctx.len = processed_len; in btrfsic_process_written_block()
1950 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1951 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1952 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1956 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2007 &block_ctx, 0, 0); in btrfsic_process_written_block()
2012 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2511 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_block_lookup_or_add() argument
2521 block = btrfsic_block_hashtable_lookup(block_ctx->dev->bdev, in btrfsic_block_lookup_or_add()
2522 block_ctx->dev_bytenr, in btrfsic_block_lookup_or_add()
2531 dev_state = btrfsic_dev_state_lookup(block_ctx->dev->bdev->bd_dev); in btrfsic_block_lookup_or_add()
2538 block->dev_bytenr = block_ctx->dev_bytenr; in btrfsic_block_lookup_or_add()
2539 block->logical_bytenr = block_ctx->start; in btrfsic_block_lookup_or_add()
2568 struct btrfsic_block_data_ctx block_ctx; in btrfsic_cmp_log_and_dev_bytenr() local
2578 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2585 if (dev_state->bdev == block_ctx.dev->bdev && in btrfsic_cmp_log_and_dev_bytenr()
2586 dev_bytenr == block_ctx.dev_bytenr) { in btrfsic_cmp_log_and_dev_bytenr()
2588 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2591 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2600 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2605 bytenr, block_ctx.dev->name, in btrfsic_cmp_log_and_dev_bytenr()
2606 block_ctx.dev_bytenr, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()