diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-02-04 14:51:49 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-02-04 14:51:49 +0000 |
commit | 2fb20e2e35cd1455d022ab7a553d7f1663ffbdeb (patch) | |
tree | 4b3bb0f76c15264fe7d4cced91127f3d96ff31f5 /fs/btrfs/file.c | |
parent | 9cb543124a2d31af42ce61a4c30765ecc8e5f1fa (diff) | |
parent | 5b91ab0abc957145c3ff6be03eb9a3901797019f (diff) |
Merge branch 'for-rmk/broadcast' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into devel-stable
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; + } } } |