Lines Matching refs:block_ctx
225 struct btrfsic_block_data_ctx *block_ctx; member
290 struct btrfsic_block_data_ctx *block_ctx,
293 struct btrfsic_block_data_ctx *block_ctx,
299 *block_ctx, u64 next_bytenr,
309 struct btrfsic_block_data_ctx *block_ctx,
314 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx);
316 struct btrfsic_block_data_ctx *block_ctx);
354 struct btrfsic_block_data_ctx *block_ctx,
951 sf->block_ctx = first_block_ctx; in btrfsic_process_metablock()
967 sf->block_ctx->start, sf->nr, in btrfsic_process_metablock()
991 sf->block_ctx->len) { in btrfsic_process_metablock()
994 sf->block_ctx->start, in btrfsic_process_metablock()
995 sf->block_ctx->dev->name); in btrfsic_process_metablock()
998 btrfsic_read_from_block_data(sf->block_ctx, in btrfsic_process_metablock()
1015 sf->block_ctx->len) in btrfsic_process_metablock()
1018 sf->block_ctx, &root_item, in btrfsic_process_metablock()
1027 sf->block_ctx, in btrfsic_process_metablock()
1058 next_stack->block_ctx = in btrfsic_process_metablock()
1073 sf->block_ctx, in btrfsic_process_metablock()
1090 sf->block_ctx->start, in btrfsic_process_metablock()
1112 sf->block_ctx->len) { in btrfsic_process_metablock()
1114 sf->block_ctx->start, in btrfsic_process_metablock()
1115 sf->block_ctx->dev->name); in btrfsic_process_metablock()
1119 sf->block_ctx, &key_ptr, key_ptr_offset, in btrfsic_process_metablock()
1126 sf->block_ctx, in btrfsic_process_metablock()
1152 next_stack->block_ctx = &sf->next_block_ctx; in btrfsic_process_metablock()
1171 btrfsic_release_block_ctx(sf->block_ctx); in btrfsic_process_metablock()
1191 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_read_from_block_data() argument
1198 size_t start_offset = offset_in_page(block_ctx->start); in btrfsic_read_from_block_data()
1201 WARN_ON(offset + len > block_ctx->len); in btrfsic_read_from_block_data()
1206 BUG_ON(i >= DIV_ROUND_UP(block_ctx->len, PAGE_SIZE)); in btrfsic_read_from_block_data()
1207 kaddr = block_ctx->datav[i]; in btrfsic_read_from_block_data()
1220 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_create_link_to_next_block() argument
1302 block_ctx->dev->bdev, in btrfsic_create_link_to_next_block()
1303 block_ctx->dev_bytenr, in btrfsic_create_link_to_next_block()
1362 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_handle_extent_data() argument
1378 block_ctx->len) { in btrfsic_handle_extent_data()
1380 block_ctx->start, block_ctx->dev->name); in btrfsic_handle_extent_data()
1384 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1398 block_ctx->len) { in btrfsic_handle_extent_data()
1400 block_ctx->start, block_ctx->dev->name); in btrfsic_handle_extent_data()
1403 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1552 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx) in btrfsic_release_block_ctx() argument
1554 if (block_ctx->mem_to_free) { in btrfsic_release_block_ctx()
1557 BUG_ON(!block_ctx->datav); in btrfsic_release_block_ctx()
1558 BUG_ON(!block_ctx->pagev); in btrfsic_release_block_ctx()
1559 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_release_block_ctx()
1563 if (block_ctx->datav[num_pages]) { in btrfsic_release_block_ctx()
1564 kunmap(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1565 block_ctx->datav[num_pages] = NULL; in btrfsic_release_block_ctx()
1567 if (block_ctx->pagev[num_pages]) { in btrfsic_release_block_ctx()
1568 __free_page(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1569 block_ctx->pagev[num_pages] = NULL; in btrfsic_release_block_ctx()
1573 kfree(block_ctx->mem_to_free); in btrfsic_release_block_ctx()
1574 block_ctx->mem_to_free = NULL; in btrfsic_release_block_ctx()
1575 block_ctx->pagev = NULL; in btrfsic_release_block_ctx()
1576 block_ctx->datav = NULL; in btrfsic_release_block_ctx()
1581 struct btrfsic_block_data_ctx *block_ctx) in btrfsic_read_block() argument
1589 BUG_ON(block_ctx->datav); in btrfsic_read_block()
1590 BUG_ON(block_ctx->pagev); in btrfsic_read_block()
1591 BUG_ON(block_ctx->mem_to_free); in btrfsic_read_block()
1592 if (!PAGE_ALIGNED(block_ctx->dev_bytenr)) { in btrfsic_read_block()
1594 block_ctx->dev_bytenr); in btrfsic_read_block()
1598 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_read_block()
1600 size = sizeof(*block_ctx->datav) + sizeof(*block_ctx->pagev); in btrfsic_read_block()
1601 block_ctx->mem_to_free = kcalloc(num_pages, size, GFP_NOFS); in btrfsic_read_block()
1602 if (!block_ctx->mem_to_free) in btrfsic_read_block()
1604 block_ctx->datav = block_ctx->mem_to_free; in btrfsic_read_block()
1605 block_ctx->pagev = (struct page **)(block_ctx->datav + num_pages); in btrfsic_read_block()
1607 block_ctx->pagev[i] = alloc_page(GFP_NOFS); in btrfsic_read_block()
1608 if (!block_ctx->pagev[i]) in btrfsic_read_block()
1612 dev_bytenr = block_ctx->dev_bytenr; in btrfsic_read_block()
1618 bio_set_dev(bio, block_ctx->dev->bdev); in btrfsic_read_block()
1623 ret = bio_add_page(bio, block_ctx->pagev[j], in btrfsic_read_block()
1634 block_ctx->start, block_ctx->dev->name); in btrfsic_read_block()
1643 block_ctx->datav[i] = kmap(block_ctx->pagev[i]); in btrfsic_read_block()
1645 return block_ctx->len; in btrfsic_read_block()
1740 struct btrfsic_block_data_ctx block_ctx; in btrfsic_process_written_block() local
1879 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1880 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1881 block_ctx.start = bytenr; in btrfsic_process_written_block()
1882 block_ctx.len = processed_len; in btrfsic_process_written_block()
1883 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1884 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1885 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1946 &block_ctx, in btrfsic_process_written_block()
1969 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
1999 block_ctx.dev = dev_state; in btrfsic_process_written_block()
2000 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
2001 block_ctx.start = bytenr; in btrfsic_process_written_block()
2002 block_ctx.len = processed_len; in btrfsic_process_written_block()
2003 block_ctx.pagev = NULL; in btrfsic_process_written_block()
2004 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
2005 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
2009 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2060 &block_ctx, 0, 0); in btrfsic_process_written_block()
2065 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2564 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_block_lookup_or_add() argument
2574 block = btrfsic_block_hashtable_lookup(block_ctx->dev->bdev, in btrfsic_block_lookup_or_add()
2575 block_ctx->dev_bytenr, in btrfsic_block_lookup_or_add()
2584 dev_state = btrfsic_dev_state_lookup(block_ctx->dev->bdev->bd_dev); in btrfsic_block_lookup_or_add()
2591 block->dev_bytenr = block_ctx->dev_bytenr; in btrfsic_block_lookup_or_add()
2592 block->logical_bytenr = block_ctx->start; in btrfsic_block_lookup_or_add()
2621 struct btrfsic_block_data_ctx block_ctx; in btrfsic_cmp_log_and_dev_bytenr() local
2631 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2638 if (dev_state->bdev == block_ctx.dev->bdev && in btrfsic_cmp_log_and_dev_bytenr()
2639 dev_bytenr == block_ctx.dev_bytenr) { in btrfsic_cmp_log_and_dev_bytenr()
2641 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2644 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2653 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2658 bytenr, block_ctx.dev->name, in btrfsic_cmp_log_and_dev_bytenr()
2659 block_ctx.dev_bytenr, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()