Lines Matching refs:eb

188 void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb,  in btrfs_set_buffer_lockdep_class()  argument
200 lockdep_set_class_and_name(&eb->lock, in btrfs_set_buffer_lockdep_class()
238 struct extent_buffer *eb, u64 parent_transid, in verify_parent_transid() argument
245 if (!parent_transid || btrfs_header_generation(eb) == parent_transid) in verify_parent_transid()
252 btrfs_tree_read_lock(eb); in verify_parent_transid()
253 btrfs_set_lock_blocking_read(eb); in verify_parent_transid()
256 lock_extent_bits(io_tree, eb->start, eb->start + eb->len - 1, in verify_parent_transid()
258 if (extent_buffer_uptodate(eb) && in verify_parent_transid()
259 btrfs_header_generation(eb) == parent_transid) { in verify_parent_transid()
263 btrfs_err_rl(eb->fs_info, in verify_parent_transid()
265 eb->start, in verify_parent_transid()
266 parent_transid, btrfs_header_generation(eb)); in verify_parent_transid()
277 if (!extent_buffer_under_io(eb)) in verify_parent_transid()
278 clear_extent_buffer_uptodate(eb); in verify_parent_transid()
280 unlock_extent_cached(io_tree, eb->start, eb->start + eb->len - 1, in verify_parent_transid()
283 btrfs_tree_read_unlock_blocking(eb); in verify_parent_transid()
328 int btrfs_verify_level_key(struct extent_buffer *eb, int level, in btrfs_verify_level_key() argument
331 struct btrfs_fs_info *fs_info = eb->fs_info; in btrfs_verify_level_key()
336 found_level = btrfs_header_level(eb); in btrfs_verify_level_key()
342 eb->start, level, found_level); in btrfs_verify_level_key()
355 if (btrfs_header_generation(eb) > fs_info->last_trans_committed) in btrfs_verify_level_key()
359 if (btrfs_header_nritems(eb) == 0) { in btrfs_verify_level_key()
362 eb->start); in btrfs_verify_level_key()
368 btrfs_node_key_to_cpu(eb, &found_key, 0); in btrfs_verify_level_key()
370 btrfs_item_key_to_cpu(eb, &found_key, 0); in btrfs_verify_level_key()
378 eb->start, parent_transid, first_key->objectid, in btrfs_verify_level_key()
394 static int btree_read_extent_buffer_pages(struct extent_buffer *eb, in btree_read_extent_buffer_pages() argument
398 struct btrfs_fs_info *fs_info = eb->fs_info; in btree_read_extent_buffer_pages()
408 clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); in btree_read_extent_buffer_pages()
409 ret = read_extent_buffer_pages(eb, WAIT_COMPLETE, mirror_num); in btree_read_extent_buffer_pages()
411 if (verify_parent_transid(io_tree, eb, in btree_read_extent_buffer_pages()
414 else if (btrfs_verify_level_key(eb, level, in btree_read_extent_buffer_pages()
422 eb->start, eb->len); in btree_read_extent_buffer_pages()
428 failed_mirror = eb->read_mirror; in btree_read_extent_buffer_pages()
440 btrfs_repair_eb_io_failure(eb, failed_mirror); in btree_read_extent_buffer_pages()
456 struct extent_buffer *eb; in csum_dirty_buffer() local
459 eb = (struct extent_buffer *)page->private; in csum_dirty_buffer()
460 if (page != eb->pages[0]) in csum_dirty_buffer()
463 found_start = btrfs_header_bytenr(eb); in csum_dirty_buffer()
473 ASSERT(memcmp_extent_buffer(eb, fs_info->fs_devices->metadata_uuid, in csum_dirty_buffer()
477 csum_tree_block(eb, result); in csum_dirty_buffer()
479 if (btrfs_header_level(eb)) in csum_dirty_buffer()
480 ret = btrfs_check_node(eb); in csum_dirty_buffer()
482 ret = btrfs_check_leaf_full(eb); in csum_dirty_buffer()
485 btrfs_print_tree(eb, 0); in csum_dirty_buffer()
488 eb->start); in csum_dirty_buffer()
492 write_extent_buffer(eb, result, 0, csum_size); in csum_dirty_buffer()
497 static int check_tree_block_fsid(struct extent_buffer *eb) in check_tree_block_fsid() argument
499 struct btrfs_fs_info *fs_info = eb->fs_info; in check_tree_block_fsid()
504 read_extent_buffer(eb, fsid, offsetof(struct btrfs_header, fsid), in check_tree_block_fsid()
532 struct extent_buffer *eb; in btrfs_validate_metadata_buffer() local
542 eb = (struct extent_buffer *)page->private; in btrfs_validate_metadata_buffer()
543 fs_info = eb->fs_info; in btrfs_validate_metadata_buffer()
549 atomic_inc(&eb->refs); in btrfs_validate_metadata_buffer()
551 reads_done = atomic_dec_and_test(&eb->io_pages); in btrfs_validate_metadata_buffer()
555 eb->read_mirror = mirror; in btrfs_validate_metadata_buffer()
556 if (test_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags)) { in btrfs_validate_metadata_buffer()
561 found_start = btrfs_header_bytenr(eb); in btrfs_validate_metadata_buffer()
562 if (found_start != eb->start) { in btrfs_validate_metadata_buffer()
564 eb->start, found_start); in btrfs_validate_metadata_buffer()
568 if (check_tree_block_fsid(eb)) { in btrfs_validate_metadata_buffer()
570 eb->start); in btrfs_validate_metadata_buffer()
574 found_level = btrfs_header_level(eb); in btrfs_validate_metadata_buffer()
577 (int)btrfs_header_level(eb), eb->start); in btrfs_validate_metadata_buffer()
582 btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), in btrfs_validate_metadata_buffer()
583 eb, found_level); in btrfs_validate_metadata_buffer()
585 csum_tree_block(eb, result); in btrfs_validate_metadata_buffer()
587 if (memcmp_extent_buffer(eb, result, 0, csum_size)) { in btrfs_validate_metadata_buffer()
590 read_extent_buffer(eb, &val, 0, csum_size); in btrfs_validate_metadata_buffer()
593 fs_info->sb->s_id, eb->start, in btrfs_validate_metadata_buffer()
596 btrfs_header_level(eb)); in btrfs_validate_metadata_buffer()
606 if (found_level == 0 && btrfs_check_leaf_full(eb)) { in btrfs_validate_metadata_buffer()
607 set_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); in btrfs_validate_metadata_buffer()
611 if (found_level > 0 && btrfs_check_node(eb)) in btrfs_validate_metadata_buffer()
615 set_extent_buffer_uptodate(eb); in btrfs_validate_metadata_buffer()
619 eb->start); in btrfs_validate_metadata_buffer()
622 test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) in btrfs_validate_metadata_buffer()
623 btree_readahead_hook(eb, ret); in btrfs_validate_metadata_buffer()
631 atomic_inc(&eb->io_pages); in btrfs_validate_metadata_buffer()
632 clear_extent_buffer_uptodate(eb); in btrfs_validate_metadata_buffer()
634 free_extent_buffer(eb); in btrfs_validate_metadata_buffer()
928 struct extent_buffer *eb; in btree_set_page_dirty() local
931 eb = (struct extent_buffer *)page->private; in btree_set_page_dirty()
932 BUG_ON(!eb); in btree_set_page_dirty()
933 BUG_ON(!test_bit(EXTENT_BUFFER_DIRTY, &eb->bflags)); in btree_set_page_dirty()
934 BUG_ON(!atomic_read(&eb->refs)); in btree_set_page_dirty()
935 btrfs_assert_tree_locked(eb); in btree_set_page_dirty()
4558 struct extent_buffer *eb; in btrfs_destroy_marked_extents() local
4570 eb = find_extent_buffer(fs_info, start); in btrfs_destroy_marked_extents()
4572 if (!eb) in btrfs_destroy_marked_extents()
4574 wait_on_extent_buffer_writeback(eb); in btrfs_destroy_marked_extents()
4577 &eb->bflags)) in btrfs_destroy_marked_extents()
4578 clear_extent_buffer_dirty(eb); in btrfs_destroy_marked_extents()
4579 free_extent_buffer_stale(eb); in btrfs_destroy_marked_extents()