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

Commit 4b72029d authored by Li Zefan's avatar Li Zefan
Browse files

btrfs: Fix error handling in zlib



Return failure if alloc_page() fails to allocate memory,
and the upper code will just give up compression.

Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
parent 8844355d
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -225,6 +225,10 @@ int btrfs_zlib_compress_pages(struct address_space *mapping,
	data_in = kmap(in_page);

	out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
	if (out_page == NULL) {
		ret = -1;
		goto out;
	}
	cpage_out = kmap(out_page);
	pages[0] = out_page;
	nr_pages = 1;
@@ -263,6 +267,10 @@ int btrfs_zlib_compress_pages(struct address_space *mapping,
				goto out;
			}
			out_page = alloc_page(GFP_NOFS | __GFP_HIGHMEM);
			if (out_page == NULL) {
				ret = -1;
				goto out;
			}
			cpage_out = kmap(out_page);
			pages[nr_pages] = out_page;
			nr_pages++;