diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c
index 00623dd16b81467ab2f164b445bf74981f5c0a6f..66532b8f0f7c683b4cda403f2cc3bcdf1c04ca38 100644
--- a/fs/btrfs/async-thread.c
+++ b/fs/btrfs/async-thread.c
@@ -315,6 +315,7 @@ void btrfs_destroy_workqueue(struct btrfs_workqueue *wq)
 	if (wq->high)
 		__btrfs_destroy_workqueue(wq->high);
 	__btrfs_destroy_workqueue(wq->normal);
+	kfree(wq);
 }
 
 void btrfs_workqueue_set_max(struct btrfs_workqueue *wq, int max)