From 7571033285e2f83bf163e0cec31fd2b352beed30 Mon Sep 17 00:00:00 2001
From: Brian Behlendorf <behlendorf1@llnl.gov>
Date: Fri, 23 Sep 2016 10:55:10 -0700
Subject: [PATCH] Fix multilist_create() memory leak

In arc_state_fini() the `arc_l2c_only->arcs_list[*]` multilists
must be destroyed.  This accidentally regressed in d3c2ae1c.

Reviewed by: Tom Caputi <tcaputi@datto.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Issue #5151
Closes #5152
---
 module/zfs/arc.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/module/zfs/arc.c b/module/zfs/arc.c
index f848c4c093..f1f61291c2 100755
--- a/module/zfs/arc.c
+++ b/module/zfs/arc.c
@@ -6265,6 +6265,8 @@ arc_state_fini(void)
 	multilist_destroy(&arc_mru_ghost->arcs_list[ARC_BUFC_DATA]);
 	multilist_destroy(&arc_mfu->arcs_list[ARC_BUFC_DATA]);
 	multilist_destroy(&arc_mfu_ghost->arcs_list[ARC_BUFC_DATA]);
+	multilist_destroy(&arc_l2c_only->arcs_list[ARC_BUFC_METADATA]);
+	multilist_destroy(&arc_l2c_only->arcs_list[ARC_BUFC_DATA]);
 }
 
 uint64_t