summary refs log tree commit diff
diff options
context:
space:
mode:
authorChris Mason <chris.mason@oracle.com>2011-11-03 22:23:13 -0400
committerChris Mason <chris.mason@oracle.com>2011-11-06 03:09:10 -0500
commitc674e04e1cd6049715e7b9446790f4b441e547c0 (patch)
treea84d0488a8c8a2fc45abd7f54e054ccd2fcf8a83
parent740c3d226cbba6cd6a32adfb66809c94938f3e57 (diff)
downloadlinux-c674e04e1cd6049715e7b9446790f4b441e547c0.tar.gz
Btrfs: fix extent_buffer leak in the metadata IO error handling
The scrub readahead branch brought in a new error handling hook,
but it was leaking extent_buffer references.

Signed-off-by: Chris Mason <chris.mason@oracle.com>
-rw-r--r--fs/btrfs/disk-io.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index 0eb1f0951251..40a62b980087 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -644,6 +644,7 @@ static int btree_io_failed_hook(struct bio *failed_bio,
 		clear_bit(EXTENT_BUFFER_READAHEAD, &eb->bflags);
 		btree_readahead_hook(root, eb, eb->start, -EIO);
 	}
+	free_extent_buffer(eb);
 
 out:
 	return -EIO;	/* we fixed nothing */