Lines Matching refs:eb
195 void btrfs_set_buffer_lockdep_class(u64 objectid, struct extent_buffer *eb, in btrfs_set_buffer_lockdep_class() argument
207 lockdep_set_class_and_name(&eb->lock, in btrfs_set_buffer_lockdep_class()
346 struct extent_buffer *eb, u64 parent_transid, in verify_parent_transid() argument
353 if (!parent_transid || btrfs_header_generation(eb) == parent_transid) in verify_parent_transid()
360 btrfs_tree_read_lock(eb); in verify_parent_transid()
361 btrfs_set_lock_blocking_rw(eb, BTRFS_READ_LOCK); in verify_parent_transid()
364 lock_extent_bits(io_tree, eb->start, eb->start + eb->len - 1, in verify_parent_transid()
366 if (extent_buffer_uptodate(eb) && in verify_parent_transid()
367 btrfs_header_generation(eb) == parent_transid) { in verify_parent_transid()
371 btrfs_err_rl(eb->fs_info, in verify_parent_transid()
373 eb->start, in verify_parent_transid()
374 parent_transid, btrfs_header_generation(eb)); in verify_parent_transid()
385 if (!extent_buffer_under_io(eb)) in verify_parent_transid()
386 clear_extent_buffer_uptodate(eb); in verify_parent_transid()
388 unlock_extent_cached(io_tree, eb->start, eb->start + eb->len - 1, in verify_parent_transid()
391 btrfs_tree_read_unlock_blocking(eb); in verify_parent_transid()
438 struct extent_buffer *eb, in btree_read_extent_buffer_pages() argument
448 clear_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); in btree_read_extent_buffer_pages()
451 ret = read_extent_buffer_pages(io_tree, eb, start, in btree_read_extent_buffer_pages()
455 if (!verify_parent_transid(io_tree, eb, in btree_read_extent_buffer_pages()
467 if (test_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags)) in btree_read_extent_buffer_pages()
471 eb->start, eb->len); in btree_read_extent_buffer_pages()
477 failed_mirror = eb->read_mirror; in btree_read_extent_buffer_pages()
489 repair_eb_io_failure(root, eb, failed_mirror); in btree_read_extent_buffer_pages()
503 struct extent_buffer *eb; in csum_dirty_buffer() local
505 eb = (struct extent_buffer *)page->private; in csum_dirty_buffer()
506 if (page != eb->pages[0]) in csum_dirty_buffer()
508 found_start = btrfs_header_bytenr(eb); in csum_dirty_buffer()
511 csum_tree_block(fs_info, eb, 0); in csum_dirty_buffer()
516 struct extent_buffer *eb) in check_tree_block_fsid() argument
522 read_extent_buffer(eb, fsid, btrfs_header_fsid(), BTRFS_FSID_SIZE); in check_tree_block_fsid()
533 #define CORRUPT(reason, eb, root, slot) \ argument
536 btrfs_header_bytenr(eb), root->objectid, slot)
605 struct extent_buffer *eb; in btree_readpage_end_io_hook() local
613 eb = (struct extent_buffer *)page->private; in btree_readpage_end_io_hook()
618 extent_buffer_get(eb); in btree_readpage_end_io_hook()
620 reads_done = atomic_dec_and_test(&eb->io_pages); in btree_readpage_end_io_hook()
624 eb->read_mirror = mirror; in btree_readpage_end_io_hook()
625 if (test_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags)) { in btree_readpage_end_io_hook()
630 found_start = btrfs_header_bytenr(eb); in btree_readpage_end_io_hook()
631 if (found_start != eb->start) { in btree_readpage_end_io_hook()
632 btrfs_err_rl(eb->fs_info, "bad tree block start %llu %llu", in btree_readpage_end_io_hook()
633 found_start, eb->start); in btree_readpage_end_io_hook()
637 if (check_tree_block_fsid(root->fs_info, eb)) { in btree_readpage_end_io_hook()
638 btrfs_err_rl(eb->fs_info, "bad fsid on block %llu", in btree_readpage_end_io_hook()
639 eb->start); in btree_readpage_end_io_hook()
643 found_level = btrfs_header_level(eb); in btree_readpage_end_io_hook()
646 (int)btrfs_header_level(eb)); in btree_readpage_end_io_hook()
651 btrfs_set_buffer_lockdep_class(btrfs_header_owner(eb), in btree_readpage_end_io_hook()
652 eb, found_level); in btree_readpage_end_io_hook()
654 ret = csum_tree_block(root->fs_info, eb, 1); in btree_readpage_end_io_hook()
665 if (found_level == 0 && check_leaf(root, eb)) { in btree_readpage_end_io_hook()
666 set_bit(EXTENT_BUFFER_CORRUPT, &eb->bflags); in btree_readpage_end_io_hook()
671 set_extent_buffer_uptodate(eb); in btree_readpage_end_io_hook()
674 test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) in btree_readpage_end_io_hook()
675 btree_readahead_hook(root, eb, eb->start, ret); in btree_readpage_end_io_hook()
683 atomic_inc(&eb->io_pages); in btree_readpage_end_io_hook()
684 clear_extent_buffer_uptodate(eb); in btree_readpage_end_io_hook()
686 free_extent_buffer(eb); in btree_readpage_end_io_hook()
693 struct extent_buffer *eb; in btree_io_failed_hook() local
696 eb = (struct extent_buffer *)page->private; in btree_io_failed_hook()
697 set_bit(EXTENT_BUFFER_READ_ERR, &eb->bflags); in btree_io_failed_hook()
698 eb->read_mirror = failed_mirror; in btree_io_failed_hook()
699 atomic_dec(&eb->io_pages); in btree_io_failed_hook()
700 if (test_and_clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags)) in btree_io_failed_hook()
701 btree_readahead_hook(root, eb, eb->start, -EIO); in btree_io_failed_hook()
1057 struct extent_buffer *eb; in btree_set_page_dirty() local
1060 eb = (struct extent_buffer *)page->private; in btree_set_page_dirty()
1061 BUG_ON(!eb); in btree_set_page_dirty()
1062 BUG_ON(!test_bit(EXTENT_BUFFER_DIRTY, &eb->bflags)); in btree_set_page_dirty()
1063 BUG_ON(!atomic_read(&eb->refs)); in btree_set_page_dirty()
1064 btrfs_assert_tree_locked(eb); in btree_set_page_dirty()
1094 int mirror_num, struct extent_buffer **eb) in reada_tree_block_flagged() argument
1118 *eb = buf; in reada_tree_block_flagged()
4302 struct extent_buffer *eb; in btrfs_destroy_marked_extents() local
4314 eb = btrfs_find_tree_block(root->fs_info, start); in btrfs_destroy_marked_extents()
4316 if (!eb) in btrfs_destroy_marked_extents()
4318 wait_on_extent_buffer_writeback(eb); in btrfs_destroy_marked_extents()
4321 &eb->bflags)) in btrfs_destroy_marked_extents()
4322 clear_extent_buffer_dirty(eb); in btrfs_destroy_marked_extents()
4323 free_extent_buffer_stale(eb); in btrfs_destroy_marked_extents()