aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file.c
diff options
context:
space:
mode:
authorMiao Xie <miaox@cn.fujitsu.com>2014-03-06 00:54:58 -0500
committerJosef Bacik <jbacik@fb.com>2014-03-10 15:17:25 -0400
commitb88935bf9822cda58fd70dffe8e016d448757d40 (patch)
tree2343f36a899f784c8d6dddce08cfb73ac2ef81b1 /fs/btrfs/file.c
parent41bd9ca459a007cc5588563bb08de9677c8d23fd (diff)
Btrfs: remove the unnecessary flush when preparing the pages
Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Josef Bacik <jbacik@fb.com>
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r--fs/btrfs/file.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 006cf9f0e852..b2143b8c33c5 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1360,11 +1360,11 @@ lock_and_cleanup_extent_if_need(struct inode *inode, struct page **pages,
1360 struct btrfs_ordered_extent *ordered; 1360 struct btrfs_ordered_extent *ordered;
1361 lock_extent_bits(&BTRFS_I(inode)->io_tree, 1361 lock_extent_bits(&BTRFS_I(inode)->io_tree,
1362 start_pos, last_pos, 0, cached_state); 1362 start_pos, last_pos, 0, cached_state);
1363 ordered = btrfs_lookup_first_ordered_extent(inode, last_pos); 1363 ordered = btrfs_lookup_ordered_range(inode, start_pos,
1364 last_pos - start_pos + 1);
1364 if (ordered && 1365 if (ordered &&
1365 ordered->file_offset + ordered->len > start_pos && 1366 ordered->file_offset + ordered->len > start_pos &&
1366 ordered->file_offset <= last_pos) { 1367 ordered->file_offset <= last_pos) {
1367 btrfs_put_ordered_extent(ordered);
1368 unlock_extent_cached(&BTRFS_I(inode)->io_tree, 1368 unlock_extent_cached(&BTRFS_I(inode)->io_tree,
1369 start_pos, last_pos, 1369 start_pos, last_pos,
1370 cached_state, GFP_NOFS); 1370 cached_state, GFP_NOFS);
@@ -1372,12 +1372,9 @@ lock_and_cleanup_extent_if_need(struct inode *inode, struct page **pages,
1372 unlock_page(pages[i]); 1372 unlock_page(pages[i]);
1373 page_cache_release(pages[i]); 1373 page_cache_release(pages[i]);
1374 } 1374 }
1375 ret = btrfs_wait_ordered_range(inode, start_pos, 1375 btrfs_start_ordered_extent(inode, ordered, 1);
1376 last_pos - start_pos + 1); 1376 btrfs_put_ordered_extent(ordered);
1377 if (ret) 1377 return -EAGAIN;
1378 return ret;
1379 else
1380 return -EAGAIN;
1381 } 1378 }
1382 if (ordered) 1379 if (ordered)
1383 btrfs_put_ordered_extent(ordered); 1380 btrfs_put_ordered_extent(ordered);