From: Chris Mason Date: Wed, 21 May 2014 12:49:54 +0000 (-0700) Subject: Btrfs: fix double free in find_lock_delalloc_range X-Git-Tag: v3.2.61~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=232270aa2ac2e463afd41cd38665ddb275277d79;p=thirdparty%2Fkernel%2Fstable.git 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 Signed-off-by: Ben Hutchings --- diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 73e4cbc340b47..05937a8edfde2 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -1523,6 +1523,7 @@ again: * shortening the size of the delalloc range we're searching */ free_extent_state(cached_state); + cached_state = NULL; if (!loops) { unsigned long offset = (*start) & (PAGE_CACHE_SIZE - 1); max_bytes = PAGE_CACHE_SIZE - offset;