Lines Matching refs:block_ctx

223 	struct btrfsic_block_data_ctx *block_ctx;  member
246 struct btrfsic_block_data_ctx *block_ctx,
249 struct btrfsic_block_data_ctx *block_ctx,
255 *block_ctx, u64 next_bytenr,
265 struct btrfsic_block_data_ctx *block_ctx,
270 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx);
272 struct btrfsic_block_data_ctx *block_ctx);
302 struct btrfsic_block_data_ctx *block_ctx,
896 sf->block_ctx = first_block_ctx; in btrfsic_process_metablock()
912 sf->block_ctx->start, sf->nr, in btrfsic_process_metablock()
936 sf->block_ctx->len) { in btrfsic_process_metablock()
940 sf->block_ctx->start, in btrfsic_process_metablock()
941 sf->block_ctx->dev->bdev); in btrfsic_process_metablock()
944 btrfsic_read_from_block_data(sf->block_ctx, in btrfsic_process_metablock()
961 sf->block_ctx->len) in btrfsic_process_metablock()
964 sf->block_ctx, &root_item, in btrfsic_process_metablock()
973 sf->block_ctx, in btrfsic_process_metablock()
1004 next_stack->block_ctx = in btrfsic_process_metablock()
1019 sf->block_ctx, in btrfsic_process_metablock()
1036 sf->block_ctx->start, in btrfsic_process_metablock()
1058 sf->block_ctx->len) { in btrfsic_process_metablock()
1061 sf->block_ctx->start, in btrfsic_process_metablock()
1062 sf->block_ctx->dev->bdev); in btrfsic_process_metablock()
1066 sf->block_ctx, &key_ptr, key_ptr_offset, in btrfsic_process_metablock()
1073 sf->block_ctx, in btrfsic_process_metablock()
1099 next_stack->block_ctx = &sf->next_block_ctx; in btrfsic_process_metablock()
1118 btrfsic_release_block_ctx(sf->block_ctx); in btrfsic_process_metablock()
1138 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_read_from_block_data() argument
1145 size_t start_offset = offset_in_page(block_ctx->start); in btrfsic_read_from_block_data()
1148 WARN_ON(offset + len > block_ctx->len); in btrfsic_read_from_block_data()
1153 BUG_ON(i >= DIV_ROUND_UP(block_ctx->len, PAGE_SIZE)); in btrfsic_read_from_block_data()
1154 kaddr = block_ctx->datav[i]; in btrfsic_read_from_block_data()
1167 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_create_link_to_next_block() argument
1251 block_ctx->dev->bdev, in btrfsic_create_link_to_next_block()
1252 block_ctx->dev_bytenr, in btrfsic_create_link_to_next_block()
1311 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_handle_extent_data() argument
1327 block_ctx->len) { in btrfsic_handle_extent_data()
1329 block_ctx->start, block_ctx->dev->bdev); in btrfsic_handle_extent_data()
1333 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1347 block_ctx->len) { in btrfsic_handle_extent_data()
1349 block_ctx->start, block_ctx->dev->bdev); in btrfsic_handle_extent_data()
1352 btrfsic_read_from_block_data(block_ctx, &file_extent_item, in btrfsic_handle_extent_data()
1502 static void btrfsic_release_block_ctx(struct btrfsic_block_data_ctx *block_ctx) in btrfsic_release_block_ctx() argument
1504 if (block_ctx->mem_to_free) { in btrfsic_release_block_ctx()
1507 BUG_ON(!block_ctx->datav); in btrfsic_release_block_ctx()
1508 BUG_ON(!block_ctx->pagev); in btrfsic_release_block_ctx()
1509 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_release_block_ctx()
1514 if (block_ctx->datav[num_pages]) in btrfsic_release_block_ctx()
1515 block_ctx->datav[num_pages] = NULL; in btrfsic_release_block_ctx()
1516 if (block_ctx->pagev[num_pages]) { in btrfsic_release_block_ctx()
1517 __free_page(block_ctx->pagev[num_pages]); in btrfsic_release_block_ctx()
1518 block_ctx->pagev[num_pages] = NULL; in btrfsic_release_block_ctx()
1522 kfree(block_ctx->mem_to_free); in btrfsic_release_block_ctx()
1523 block_ctx->mem_to_free = NULL; in btrfsic_release_block_ctx()
1524 block_ctx->pagev = NULL; in btrfsic_release_block_ctx()
1525 block_ctx->datav = NULL; in btrfsic_release_block_ctx()
1530 struct btrfsic_block_data_ctx *block_ctx) in btrfsic_read_block() argument
1538 BUG_ON(block_ctx->datav); in btrfsic_read_block()
1539 BUG_ON(block_ctx->pagev); in btrfsic_read_block()
1540 BUG_ON(block_ctx->mem_to_free); in btrfsic_read_block()
1541 if (!PAGE_ALIGNED(block_ctx->dev_bytenr)) { in btrfsic_read_block()
1543 block_ctx->dev_bytenr); in btrfsic_read_block()
1547 num_pages = (block_ctx->len + (u64)PAGE_SIZE - 1) >> in btrfsic_read_block()
1549 size = sizeof(*block_ctx->datav) + sizeof(*block_ctx->pagev); in btrfsic_read_block()
1550 block_ctx->mem_to_free = kcalloc(num_pages, size, GFP_NOFS); in btrfsic_read_block()
1551 if (!block_ctx->mem_to_free) in btrfsic_read_block()
1553 block_ctx->datav = block_ctx->mem_to_free; in btrfsic_read_block()
1554 block_ctx->pagev = (struct page **)(block_ctx->datav + num_pages); in btrfsic_read_block()
1555 ret = btrfs_alloc_page_array(num_pages, block_ctx->pagev); in btrfsic_read_block()
1559 dev_bytenr = block_ctx->dev_bytenr; in btrfsic_read_block()
1564 bio = bio_alloc(block_ctx->dev->bdev, num_pages - i, in btrfsic_read_block()
1569 ret = bio_add_page(bio, block_ctx->pagev[j], in btrfsic_read_block()
1580 block_ctx->start, block_ctx->dev->bdev); in btrfsic_read_block()
1589 block_ctx->datav[i] = page_address(block_ctx->pagev[i]); in btrfsic_read_block()
1591 return block_ctx->len; in btrfsic_read_block()
1688 struct btrfsic_block_data_ctx block_ctx; in btrfsic_process_written_block() local
1832 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1833 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1834 block_ctx.start = bytenr; in btrfsic_process_written_block()
1835 block_ctx.len = processed_len; in btrfsic_process_written_block()
1836 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1837 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1838 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1899 &block_ctx, in btrfsic_process_written_block()
1922 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
1954 block_ctx.dev = dev_state; in btrfsic_process_written_block()
1955 block_ctx.dev_bytenr = dev_bytenr; in btrfsic_process_written_block()
1956 block_ctx.start = bytenr; in btrfsic_process_written_block()
1957 block_ctx.len = processed_len; in btrfsic_process_written_block()
1958 block_ctx.pagev = NULL; in btrfsic_process_written_block()
1959 block_ctx.mem_to_free = NULL; in btrfsic_process_written_block()
1960 block_ctx.datav = mapped_datav; in btrfsic_process_written_block()
1964 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2015 &block_ctx, 0, 0); in btrfsic_process_written_block()
2020 btrfsic_release_block_ctx(&block_ctx); in btrfsic_process_written_block()
2528 struct btrfsic_block_data_ctx *block_ctx, in btrfsic_block_lookup_or_add() argument
2538 block = btrfsic_block_hashtable_lookup(block_ctx->dev->bdev, in btrfsic_block_lookup_or_add()
2539 block_ctx->dev_bytenr, in btrfsic_block_lookup_or_add()
2548 dev_state = btrfsic_dev_state_lookup(block_ctx->dev->bdev->bd_dev); in btrfsic_block_lookup_or_add()
2555 block->dev_bytenr = block_ctx->dev_bytenr; in btrfsic_block_lookup_or_add()
2556 block->logical_bytenr = block_ctx->start; in btrfsic_block_lookup_or_add()
2585 struct btrfsic_block_data_ctx block_ctx; in btrfsic_cmp_log_and_dev_bytenr() local
2595 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2602 if (dev_state->bdev == block_ctx.dev->bdev && in btrfsic_cmp_log_and_dev_bytenr()
2603 dev_bytenr == block_ctx.dev_bytenr) { in btrfsic_cmp_log_and_dev_bytenr()
2605 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2608 btrfsic_release_block_ctx(&block_ctx); in btrfsic_cmp_log_and_dev_bytenr()
2618 &block_ctx, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()
2623 bytenr, block_ctx.dev->bdev, in btrfsic_cmp_log_and_dev_bytenr()
2624 block_ctx.dev_bytenr, mirror_num); in btrfsic_cmp_log_and_dev_bytenr()