mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-23 18:07:03 +00:00
dm rq: clear kworker_task if kthread_run() returned an error
cleanup_mapped_device() calls kthread_stop() if kworker_task is
non-NULL. Currently the assigned value could be a valid task struct or
an error code (e.g -ENOMEM). Reset md->kworker_task to NULL if
kthread_run() returned an erorr.
Fixes: 7193a9defc
("dm rq: check kthread_run return for .request_fn request-based DM")
Cc: stable@vger.kernel.org # 4.8
Reported-by: Tahsin Erdogan <tahsin@google.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
This commit is contained in:
parent
d09960b003
commit
937fa62e8a
@ -856,8 +856,11 @@ int dm_old_init_request_queue(struct mapped_device *md)
|
||||
init_kthread_worker(&md->kworker);
|
||||
md->kworker_task = kthread_run(kthread_worker_fn, &md->kworker,
|
||||
"kdmwork-%s", dm_device_name(md));
|
||||
if (IS_ERR(md->kworker_task))
|
||||
return PTR_ERR(md->kworker_task);
|
||||
if (IS_ERR(md->kworker_task)) {
|
||||
int error = PTR_ERR(md->kworker_task);
|
||||
md->kworker_task = NULL;
|
||||
return error;
|
||||
}
|
||||
|
||||
elv_register_queue(md->queue);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user