Btrfs: don't wait for ordered data outside desired range
authorFilipe David Borba Manana <fdmanana@gmail.com>
Wed, 6 Nov 2013 15:12:40 +0000 (15:12 +0000)
committerChris Mason <chris.mason@fusionio.com>
Thu, 21 Nov 2013 01:44:45 +0000 (20:44 -0500)
In btrfs_wait_ordered_range(), if we found an extent to the left
of the start of our desired wait range and the last byte of that
extent is 1 less than the desired range's start, we would would
wait for the IO completion of that extent unnecessarily.

Signed-off-by: Filipe David Borba Manana <fdmanana@gmail.com>
Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Signed-off-by: Chris Mason <chris.mason@fusionio.com>
fs/btrfs/ordered-data.c

index 25a8f3812f14e0410a95902d2985455313cb1e6f..c37124bccf178aacff5c8a6dba776edecec0f994 100644 (file)
@@ -803,7 +803,7 @@ int btrfs_wait_ordered_range(struct inode *inode, u64 start, u64 len)
                        btrfs_put_ordered_extent(ordered);
                        break;
                }
-               if (ordered->file_offset + ordered->len < start) {
+               if (ordered->file_offset + ordered->len <= start) {
                        btrfs_put_ordered_extent(ordered);
                        break;
                }