|
@@ -1675,7 +1675,7 @@ static int __init dm_multipath_init(void)
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
|
|
|
- kmultipathd = create_workqueue("kmpathd");
|
|
|
+ kmultipathd = alloc_workqueue("kmpathd", WQ_MEM_RECLAIM, 0);
|
|
|
if (!kmultipathd) {
|
|
|
DMERR("failed to create workqueue kmpathd");
|
|
|
dm_unregister_target(&multipath_target);
|
|
@@ -1689,7 +1689,8 @@ static int __init dm_multipath_init(void)
|
|
|
* old workqueue would also create a bottleneck in the
|
|
|
* path of the storage hardware device activation.
|
|
|
*/
|
|
|
- kmpath_handlerd = create_singlethread_workqueue("kmpath_handlerd");
|
|
|
+ kmpath_handlerd = alloc_ordered_workqueue("kmpath_handlerd",
|
|
|
+ WQ_MEM_RECLAIM);
|
|
|
if (!kmpath_handlerd) {
|
|
|
DMERR("failed to create workqueue kmpath_handlerd");
|
|
|
destroy_workqueue(kmultipathd);
|