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

Commit 3dd39914 authored by Chris Mason's avatar Chris Mason
Browse files

Btrfs: Add extra checks to avoid removing extent_state from pages we can't free

parent f2984462
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -436,6 +436,12 @@ static int btree_releasepage(struct page *page, gfp_t gfp_flags)
	struct extent_map_tree *map;
	int ret;

	if (page_count(page) > 3) {
		/* once for page->private, once for the caller, once
		 * once for the page cache
		 */
		return 0;
	}
	tree = &BTRFS_I(page->mapping->host)->io_tree;
	map = &BTRFS_I(page->mapping->host)->extent_tree;
	ret = try_release_extent_mapping(map, tree, page, gfp_flags);