Lines Matching refs:eb

182 void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb,  in btrfs_set_buffer_lockdep_class()  argument
194 lockdep_set_class_and_name(&eb->lock, in btrfs_set_buffer_lockdep_class()
302 struct extent_buffer *eb, u64 parent_transid, in verify_parent_transid() argument
309 if (!parent_transid || btrfs_header_generation(eb) == parent_transid) in verify_parent_transid()
316 btrfs_tree_read_lock(eb); in verify_parent_transid()
317 btrfs_set_lock_blocking_read(eb); in verify_parent_transid()
320 lock_extent_bits(io_tree, eb->start, eb->start + eb->len - 1, in verify_parent_transid()
322 if (extent_buffer_uptodate(eb) && in verify_parent_transid()
323 btrfs_header_generation(eb) == parent_transid) { in verify_parent_transid()
327 btrfs_err_rl(eb->fs_info, in verify_parent_transid()
329 eb->start, in verify_parent_transid()
330 parent_transid, btrfs_header_generation(eb)); in verify_parent_transid()
341 if (!extent_buffer_under_io(eb)) in verify_parent_transid()
342 clear_extent_buffer_uptodate(eb); in verify_parent_transid()
344 unlock_extent_cached(io_tree, eb->start, eb->start + eb->len - 1, in verify_parent_transid()
347 btrfs_tree_read_unlock_blocking(eb); in verify_parent_transid()
391 int btrfs_verify_level_key(struct extent_buffer *eb, int level, in btrfs_verify_level_key() argument
394 struct btrfs_fs_info *fs_info = eb->fs_info; in btrfs_verify_level_key()
399 found_level = btrfs_header_level(eb); in btrfs_verify_level_key()
405 eb->start, level, found_level); in btrfs_verify_level_key()
418 if (btrfs_header_generation(eb) > fs_info->last_trans_committed) in btrfs_verify_level_key()
422 if (btrfs_header_nritems(eb) == 0) { in btrfs_verify_level_key()
425 eb->start); in btrfs_verify_level_key()
431 btrfs_node_key_to_cpu(eb, &found_key, 0); in btrfs_verify_level_key()
433 btrfs_item_key_to_cpu(eb, &found_key, 0); in btrfs_verify_level_key()
441 eb->start, parent_transid, first_key->objectid, in btrfs_verify_level_key()
457 static int btree_read_extent_buffer_pages(struct extent_buffer *eb, in btree_read_extent_buffer_pages() argument
461 struct btrfs_fs_info *fs_info = eb->fs_info; in btree_read_extent_buffer_pages()
471 clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); in btree_read_extent_buffer_pages()
472 ret = read_extent_buffer_pages(eb, WAIT_COMPLETE, mirror_num); in btree_read_extent_buffer_pages()
474 if (verify_parent_transid(io_tree, eb, in btree_read_extent_buffer_pages()
477 else if (btrfs_verify_level_key(eb, level, in btree_read_extent_buffer_pages()
485 eb->start, eb->len); in btree_read_extent_buffer_pages()
491 failed_mirror = eb->read_mirror; in btree_read_extent_buffer_pages()
503 btrfs_repair_eb_io_failure(eb, failed_mirror); in btree_read_extent_buffer_pages()
519 struct extent_buffer *eb; in csum_dirty_buffer() local
522 eb = (struct extent_buffer *)page->private; in csum_dirty_buffer()
523 if (page != eb->pages[0]) in csum_dirty_buffer()
526 found_start = btrfs_header_bytenr(eb); in csum_dirty_buffer()
536 ASSERT(memcmp_extent_buffer(eb, fs_info->fs_devices->metadata_uuid, in csum_dirty_buffer()
539 if (csum_tree_block(eb, result)) in csum_dirty_buffer()
542 if (btrfs_header_level(eb)) in csum_dirty_buffer()
543 ret = btrfs_check_node(eb); in csum_dirty_buffer()
545 ret = btrfs_check_leaf_full(eb); in csum_dirty_buffer()
550 eb->start); in csum_dirty_buffer()
553 write_extent_buffer(eb, result, 0, csum_size); in csum_dirty_buffer()
558 static int check_tree_block_fsid(struct extent_buffer *eb) in check_tree_block_fsid() argument
560 struct btrfs_fs_info *fs_info = eb->fs_info; in check_tree_block_fsid()
565 read_extent_buffer(eb, fsid, btrfs_header_fsid(), BTRFS_FSID_SIZE); in check_tree_block_fsid()
595 struct extent_buffer *eb; in btree_readpage_end_io_hook() local
606 eb = (struct extent_buffer *)page->private; in btree_readpage_end_io_hook()
611 extent_buffer_get(eb); in btree_readpage_end_io_hook()
613 reads_done = atomic_dec_and_test(&eb->io_pages); in btree_readpage_end_io_hook()
617 eb->read_mirror = mirror; in btree_readpage_end_io_hook()
618 if (test_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags)) { in btree_readpage_end_io_hook()
623 found_start = btrfs_header_bytenr(eb); in btree_readpage_end_io_hook()
624 if (found_start != eb->start) { in btree_readpage_end_io_hook()
626 eb->start, found_start); in btree_readpage_end_io_hook()
630 if (check_tree_block_fsid(eb)) { in btree_readpage_end_io_hook()
632 eb->start); in btree_readpage_end_io_hook()
636 found_level = btrfs_header_level(eb); in btree_readpage_end_io_hook()
639 (int)btrfs_header_level(eb), eb->start); in btree_readpage_end_io_hook()
644 btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), in btree_readpage_end_io_hook()
645 eb, found_level); in btree_readpage_end_io_hook()
647 ret = csum_tree_block(eb, result); in btree_readpage_end_io_hook()
651 if (memcmp_extent_buffer(eb, result, 0, csum_size)) { in btree_readpage_end_io_hook()
657 read_extent_buffer(eb, &val, 0, csum_size); in btree_readpage_end_io_hook()
660 fs_info->sb->s_id, eb->start, in btree_readpage_end_io_hook()
661 val, found, btrfs_header_level(eb)); in btree_readpage_end_io_hook()
671 if (found_level == 0 && btrfs_check_leaf_full(eb)) { in btree_readpage_end_io_hook()
672 set_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); in btree_readpage_end_io_hook()
676 if (found_level > 0 && btrfs_check_node(eb)) in btree_readpage_end_io_hook()
680 set_extent_buffer_uptodate(eb); in btree_readpage_end_io_hook()
684 eb->start); in btree_readpage_end_io_hook()
687 test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) in btree_readpage_end_io_hook()
688 btree_readahead_hook(eb, ret); in btree_readpage_end_io_hook()
696 atomic_inc(&eb->io_pages); in btree_readpage_end_io_hook()
697 clear_extent_buffer_uptodate(eb); in btree_readpage_end_io_hook()
699 free_extent_buffer(eb); in btree_readpage_end_io_hook()
1012 struct extent_buffer *eb; in btree_set_page_dirty() local
1015 eb = (struct extent_buffer *)page->private; in btree_set_page_dirty()
1016 BUG_ON(!eb); in btree_set_page_dirty()
1017 BUG_ON(!test_bit(EXTENT_BUFFER_DIRTY, &eb->bflags)); in btree_set_page_dirty()
1018 BUG_ON(!atomic_read(&eb->refs)); in btree_set_page_dirty()
1019 btrfs_assert_tree_locked(eb); in btree_set_page_dirty()
4367 struct extent_buffer *eb; in btrfs_destroy_marked_extents() local
4379 eb = find_extent_buffer(fs_info, start); in btrfs_destroy_marked_extents()
4381 if (!eb) in btrfs_destroy_marked_extents()
4383 wait_on_extent_buffer_writeback(eb); in btrfs_destroy_marked_extents()
4386 &eb->bflags)) in btrfs_destroy_marked_extents()
4387 clear_extent_buffer_dirty(eb); in btrfs_destroy_marked_extents()
4388 free_extent_buffer_stale(eb); in btrfs_destroy_marked_extents()