summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/extent_io.c
diff options
context:
space:
mode:
authorChandan Rajendra2016-01-21 11:25:58 +0100
committerDavid Sterba2016-02-01 19:24:29 +0100
commitdbfdb6d1b369b88253af1cd71723437d152b0b50 (patch)
tree1823ea5a0d8c276886b41478234b91d800058aaa /fs/btrfs/extent_io.c
parentBtrfs: btrfs_page_mkwrite: Reserve space in sectorsized units (diff)
downloadkernel-qcow2-linux-dbfdb6d1b369b88253af1cd71723437d152b0b50.tar.gz
kernel-qcow2-linux-dbfdb6d1b369b88253af1cd71723437d152b0b50.tar.xz
kernel-qcow2-linux-dbfdb6d1b369b88253af1cd71723437d152b0b50.zip
Btrfs: Search for all ordered extents that could span across a page
In subpagesize-blocksize scenario it is not sufficient to search using the first byte of the page to make sure that there are no ordered extents present across the page. Fix this. Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs/extent_io.c')
-rw-r--r--fs/btrfs/extent_io.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 2e7c97a3f344..1b2073389dc2 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -3186,7 +3186,8 @@ static int __extent_read_full_page(struct extent_io_tree *tree,
while (1) {
lock_extent(tree, start, end);
- ordered = btrfs_lookup_ordered_extent(inode, start);
+ ordered = btrfs_lookup_ordered_range(inode, start,
+ PAGE_CACHE_SIZE);
if (!ordered)
break;
unlock_extent(tree, start, end);