aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/file.c
diff options
context:
space:
mode:
authorLiu Bo <bo.li.liu@oracle.com>2013-01-07 05:10:12 -0500
committerJosef Bacik <josef@toxicpanda.com>2013-01-14 13:53:22 -0500
commitf9e4fb53938de5db01950c9dfe479703b2f5c964 (patch)
tree95e9e8326d4a39feedc591c8d05de33d5db46d96 /fs/btrfs/file.c
parent1214b53f90131fee1f950010c43e92455fe598ab (diff)
Btrfs: fix a bug when llseek for delalloc bytes behind prealloc extents
xfstests case 285 complains. It it because btrfs did not try to find unwritten delalloc bytes(only dirty pages, not yet writeback) behind prealloc extents, it ends up finding nothing while we're with SEEK_DATA. Signed-off-by: Liu Bo <bo.li.liu@oracle.com> Signed-off-by: Josef Bacik <jbacik@fusionio.com>
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r--fs/btrfs/file.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index fa48051484b8..841cfe3be0e0 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -2309,9 +2309,12 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int origin)
2309 } 2309 }
2310 } 2310 }
2311 2311
2312 *offset = start; 2312 if (!test_bit(EXTENT_FLAG_PREALLOC,
2313 free_extent_map(em); 2313 &em->flags)) {
2314 break; 2314 *offset = start;
2315 free_extent_map(em);
2316 break;
2317 }
2315 } 2318 }
2316 } 2319 }
2317 2320