summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorScott Talbert <scott.talbert@hgst.com>2016-05-09 09:14:28 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-06-07 18:18:55 -0700
commit7281989d24e3e286ab745f0f5a75ab8ac761854d (patch)
treea3dbd2d2f8d88fcaa007d01eed821ee8068dea06 /fs
parentb9cd7ba4dd03492246c2a717854803699bcad174 (diff)
downloadlwn-7281989d24e3e286ab745f0f5a75ab8ac761854d.tar.gz
lwn-7281989d24e3e286ab745f0f5a75ab8ac761854d.zip
btrfs: fix memory leak during RAID 5/6 device replacement
commit 4673272f43ae790ab9ec04e38a7542f82bb8f020 upstream. A 'struct bio' is allocated in scrub_missing_raid56_pages(), but it was never freed anywhere. Signed-off-by: Scott Talbert <scott.talbert@hgst.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/btrfs/scrub.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c
index 160ac3e23270..ee046f6fffe0 100644
--- a/fs/btrfs/scrub.c
+++ b/fs/btrfs/scrub.c
@@ -2125,6 +2125,8 @@ static void scrub_missing_raid56_end_io(struct bio *bio)
if (bio->bi_error)
sblock->no_io_error_seen = 0;
+ bio_put(bio);
+
btrfs_queue_work(fs_info->scrub_workers, &sblock->work);
}