backing-dev: fix wakeup timer races with bdi_unregister()
commit 2673b4cf upstream. While 7a401a97 ("backing-dev: ensure wakeup_timer is deleted") addressed the problem of the bdi being freed with a queued wakeup timer, there are other races that could happen if the wakeup timer expires after/during bdi_unregister(), before bdi_destroy() is called. wakeup_timer_fn() could attempt to wakeup a task which has already has been freed, or could access a NULL bdi->dev via the wake_forker_thread tracepoint. Cc: Jens Axboe <axboe@kernel.dk> Reported-by:Chanho Min <chanho.min@lge.com> Reviewed-by:
Namjae Jeon <linkinjeon@gmail.com> Signed-off-by:
Rabin Vincent <rabin@rab.in> Signed-off-by:
Wu Fengguang <fengguang.wu@intel.com> Signed-off-by:
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Showing
Please register or sign in to comment