Skip to contentSkip to conversation

Patch "btrfs: propagate error to btrfs_cmp_data_prepare caller" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Oct 2, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

btrfs: propagate error to btrfs_cmp_data_prepare caller

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
btrfs-propagate-error-to-btrfs_cmp_data_prepare-caller.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 78ad4ce014d025f41b8dde3a81876832ead643cf Mon Sep 17 00:00:00 2001

From: Naohiro Aota <[email protected]>
Date: Fri, 8 Sep 2017 17:48:55 +0900
Subject: btrfs: propagate error to btrfs_cmp_data_prepare caller

From: Naohiro Aota <[email protected]>

commit 78ad4ce014d025f41b8dde3a81876832ead643cf upstream.

btrfs_cmp_data_prepare() (almost) always returns 0 i.e. ignoring errors from gather_extent_pages(). While the pages are freed by btrfs_cmp_data_free(), cmp->num_pages still has > 0. Then, btrfs_extent_same() try to access the already freed pages causing faults (or violates PageLocked assertion).

This patch just return the error as is so that the caller stop the process.

Fixes f441460202cb ("btrfs: fix deadlock with extent-same and readpage")
---
 fs/btrfs/ioctl.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
fs/btrfs/ioctl.c +1 -1
@@ -3052,7 +3052,7 @@ static int btrfs_cmp_data_prepare(struct
 out:
 	if (ret)
 		btrfs_cmp_data_free(cmp);
-	return 0;
+	return ret;
 }
 
 static int btrfs_cmp_data(struct inode *src, u64 loff, struct inode *dst,

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/btrfs-propagate-error-to-btrfs_cmp_data_prepare-caller.patch queue-4.9/btrfs-fix-null-pointer-dereference-from-free_reloc_roots.patch