diff options
author | Miao Xie <miaox@cn.fujitsu.com> | 2014-03-06 00:54:58 -0500 |
---|---|---|
committer | Josef Bacik <jbacik@fb.com> | 2014-03-10 15:17:25 -0400 |
commit | b88935bf9822cda58fd70dffe8e016d448757d40 (patch) | |
tree | 2343f36a899f784c8d6dddce08cfb73ac2ef81b1 /fs/btrfs/file.c | |
parent | 41bd9ca459a007cc5588563bb08de9677c8d23fd (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.c | 13 |
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); |