From: Filipe David Borba Manana <fdmanana@gmail.com>
Date: Tue, 19 Nov 2013 16:19:24 +0000 (+0000)
Subject: Btrfs: fix ordered extent check in btrfs_punch_hole
X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=6126e3caf7468a07cc1a8239d9e95090acedd3ca;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git

Btrfs: fix ordered extent check in btrfs_punch_hole

If the ordered extent's last byte was 1 less than our region's
start byte, we would unnecessarily wait for the completion of
that ordered extent, because it doesn't intersect our target
range.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fb.com>
Signed-off-by: Chris Mason <clm@fb.com>
---

diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 6cd003c3f05e..740ae8c71701 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2164,7 +2164,7 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len)
 		 * we need to try again.
 		 */
 		if ((!ordered ||
-		    (ordered->file_offset + ordered->len < lockstart ||
+		    (ordered->file_offset + ordered->len <= lockstart ||
 		     ordered->file_offset > lockend)) &&
 		     !test_range_bit(&BTRFS_I(inode)->io_tree, lockstart,
 				     lockend, EXTENT_UPTODATE, 0,