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

Commit 24ae6365 authored by Yan, Zheng's avatar Yan, Zheng Committed by Chris Mason
Browse files

Btrfs: Fix page leak in compressed writeback path



"start + num_bytes >= actual_end" can happen when compressed page writeback races
with file truncation. In that case we need unlock and release pages past the end
of file.

Signed-off-by: default avatarYan, Zheng <zheng.z.yan@intel.com>
Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 84cd948c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -495,7 +495,7 @@ static noinline int compress_file_range(struct inode *inode,
		add_async_extent(async_cow, start, num_bytes,
				 total_compressed, pages, nr_pages_ret);

		if (start + num_bytes < end && start + num_bytes < actual_end) {
		if (start + num_bytes < end) {
			start += num_bytes;
			pages = NULL;
			cond_resched();