aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Mason <clm@fb.com>2014-05-21 05:49:54 -0700
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-06-30 20:14:02 -0700
commitbddf0faccf1dd39ec80059eb5266766e6bf0134c (patch)
treed7af2eda8919f9c6b707aed7c8297fb763edbdea
parent938bdab6783797ff1f70cbb9cefa406889ef5c52 (diff)
Btrfs: fix double free in find_lock_delalloc_range
commit 7d78874273463a784759916fc3e0b4e2eb141c70 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: Chris Mason <clm@fb.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--fs/btrfs/extent_io.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 3955e475cee..ba7c7b60ffb 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_io.c
@@ -1693,6 +1693,7 @@ again:
* shortening the size of the delalloc range we're searching
*/
free_extent_state(cached_state);
+ cached_state = NULL;
if (!loops) {
max_bytes = PAGE_CACHE_SIZE;
loops = 1;