Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 33958dc6 authored by Chris Mason's avatar Chris Mason
Browse files

Btrfs: Fix verify_parent_transid



It was incorrectly clearing the up to date flag on the buffer even
when the buffer properly verified.

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent f321e491
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -235,8 +235,8 @@ static int verify_parent_transid(struct extent_io_tree *io_tree,
	       (unsigned long long)parent_transid,
	       (unsigned long long)btrfs_header_generation(eb));
	ret = 1;
out:
	clear_extent_buffer_uptodate(io_tree, eb);
out:
	unlock_extent(io_tree, eb->start, eb->start + eb->len - 1,
		      GFP_NOFS);
	return ret;
+4 −1
Original line number Diff line number Diff line
@@ -2647,6 +2647,8 @@ static inline struct page *extent_buffer_page(struct extent_buffer *eb,
		return eb->first_page;
	i += eb->start >> PAGE_CACHE_SHIFT;
	mapping = eb->first_page->mapping;
	if (!mapping)
		return NULL;
	read_lock_irq(&mapping->tree_lock);
	p = radix_tree_lookup(&mapping->page_tree, i);
	read_unlock_irq(&mapping->tree_lock);
@@ -2908,6 +2910,7 @@ int clear_extent_buffer_uptodate(struct extent_io_tree *tree,
			      GFP_NOFS);
	for (i = 0; i < num_pages; i++) {
		page = extent_buffer_page(eb, i);
		if (page)
			ClearPageUptodate(page);
	}
	return 0;