diff options
| author | Takashi Iwai <tiwai@suse.de> | 2013-02-05 14:48:03 +0100 |
|---|---|---|
| committer | Takashi Iwai <tiwai@suse.de> | 2013-02-05 14:48:03 +0100 |
| commit | 2faea5274f079630991800bd579f85a621f96ef5 (patch) | |
| tree | 4afb9032f0ae3a3e8b539e0abe40cda320989ac3 /fs/btrfs/file.c | |
| parent | 16c5ab1d3a6d1b11ed2966fa33a3a4fecd13a2bc (diff) | |
| parent | edac894389f9c9de2a1368c78809c824b343f3a5 (diff) | |
Merge branch 'for-linus' into for-next
Merge pending fixes that haven't pulled into 3.8.
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 77061bf43ed..f76b1fd160d 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; + } } } |
