diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
index 89632ce9776056aee6ab7d6f207ba24f7f6ddff6..c9f47d0cccf9bb3c617be5d5b7e647a99a5df491 100644
--- a/drivers/md/dm-thin.c
+++ b/drivers/md/dm-thin.c
@@ -2484,6 +2484,7 @@ static void pool_work_wait(struct pool_work *pw, struct pool *pool,
 	init_completion(&pw->complete);
 	queue_work(pool->wq, &pw->worker);
 	wait_for_completion(&pw->complete);
+	destroy_work_on_stack(&pw->worker);
 }
 
 /*----------------------------------------------------------------*/