Commit 232270aa authored by Chris Mason's avatar Chris Mason Committed by Ben Hutchings

Btrfs: fix double free in find_lock_delalloc_range

commit 7d788742 upstream.

We need to NULL the cached_state after freeing it, otherwise
we might free it again if find_delalloc_range doesn't find anything.
Signed-off-by: default avatarChris Mason <clm@fb.com>
Signed-off-by: default avatarBen Hutchings <ben@decadent.org.uk>
parent 85845448
...@@ -1523,6 +1523,7 @@ static noinline u64 find_lock_delalloc_range(struct inode *inode, ...@@ -1523,6 +1523,7 @@ static noinline u64 find_lock_delalloc_range(struct inode *inode,
* shortening the size of the delalloc range we're searching * shortening the size of the delalloc range we're searching
*/ */
free_extent_state(cached_state); free_extent_state(cached_state);
cached_state = NULL;
if (!loops) { if (!loops) {
unsigned long offset = (*start) & (PAGE_CACHE_SIZE - 1); unsigned long offset = (*start) & (PAGE_CACHE_SIZE - 1);
max_bytes = PAGE_CACHE_SIZE - offset; max_bytes = PAGE_CACHE_SIZE - offset;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment