diff options
author | Olof Johansson <olof@lixom.net> | 2013-01-27 22:07:11 -0800 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2013-01-27 22:07:20 -0800 |
commit | 6b914c998787d65022e80d6262dfd0edef58cadb (patch) | |
tree | ec9d9605ae08e6e40664c4302a181979ab4fe1d3 /fs/btrfs/file.c | |
parent | 1f87a404d02a96519284e1928445ca5cfe9667db (diff) | |
parent | 949db153b6466c6f7cad5a427ecea94985927311 (diff) | |
download | linux-6b914c998787d65022e80d6262dfd0edef58cadb.tar.bz2 |
Merge tag 'v3.8-rc5' into next/cleanup
Linux 3.8-rc5
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'fs/btrfs/file.c')
-rw-r--r-- | fs/btrfs/file.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 77061bf43edb..f76b1fd160d4 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -2241,6 +2241,7 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int whence) if (lockend <= lockstart) lockend = lockstart + root->sectorsize; + lockend--; len = lockend - lockstart + 1; len = max_t(u64, len, root->sectorsize); @@ -2307,9 +2308,12 @@ static int find_desired_extent(struct inode *inode, loff_t *offset, int whence) } } - *offset = start; - free_extent_map(em); - break; + if (!test_bit(EXTENT_FLAG_PREALLOC, + &em->flags)) { + *offset = start; + free_extent_map(em); + break; + } } } |