From: Mike Snitzer Date: Tue, 14 Feb 2023 18:06:05 +0000 (-0500) Subject: dm: remove flush_scheduled_work() during local_exit() X-Git-Tag: v6.1.16~527 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=5b8cd07aba15973a3a7b9848b4fad417a739e2ac;p=users%2Fdwmw2%2Flinux.git dm: remove flush_scheduled_work() during local_exit() [ Upstream commit 0b22ff5360f5c4e11050b89206370fdf7dc0a226 ] Commit acfe0ad74d2e1 ("dm: allocate a special workqueue for deferred device removal") switched from using system workqueue to a single workqueue local to DM. But it didn't eliminate the call to flush_scheduled_work() that was introduced purely for the benefit of deferred device removal with commit 2c140a246dc ("dm: allow remove to be deferred"). Since DM core uses its own workqueue (and queue_work) there is no need to call flush_scheduled_work() from local_exit(). local_exit()'s destroy_workqueue(deferred_remove_workqueue) handles flushing work started with queue_work(). Fixes: acfe0ad74d2e1 ("dm: allocate a special workqueue for deferred device removal") Signed-off-by: Mike Snitzer Signed-off-by: Sasha Levin --- diff --git a/drivers/md/dm.c b/drivers/md/dm.c index d49809e9db96e..2ce16e6c1e357 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -231,7 +231,6 @@ out_uevent_exit: static void local_exit(void) { - flush_scheduled_work(); destroy_workqueue(deferred_remove_workqueue); unregister_blkdev(_major, _name);