X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Flibcfs%2Flibcfs_ptask.c;h=f54b30232e9ca4f22b9f14464fbd1c97ac5daee3;hb=7d33c7714a432b451d790031e31e1017ab405311;hp=0548dae50cdf9da68a03336189f583575b6f9ac6;hpb=eca949bf83dfec5be33dc6230f55823376aef65a;p=fs%2Flustre-release.git diff --git a/libcfs/libcfs/libcfs_ptask.c b/libcfs/libcfs/libcfs_ptask.c index 0548dae..f54b302 100644 --- a/libcfs/libcfs/libcfs_ptask.c +++ b/libcfs/libcfs/libcfs_ptask.c @@ -276,9 +276,15 @@ int cfs_ptengine_set_cpumask(struct cfs_ptask_engine *engine, cpumask_copy(parallel_mask, cpumask); cpumask_copy(serial_mask, cpu_online_mask); - rc = padata_set_cpumasks(engine->pte_pinst, parallel_mask, serial_mask); - + rc = padata_set_cpumask(engine->pte_pinst, PADATA_CPU_PARALLEL, + parallel_mask); free_cpumask_var(parallel_mask); + if (rc) + goto out_failed_mask; + + rc = padata_set_cpumask(engine->pte_pinst, PADATA_CPU_SERIAL, + serial_mask); +out_failed_mask: free_cpumask_var(serial_mask); #endif /* CONFIG_PADATA */ @@ -378,7 +384,7 @@ static int cfs_ptengine_padata_init(struct cfs_ptask_engine *engine, } engine->pte_weight = cpumask_weight(par_mask); - engine->pte_pinst = padata_alloc(engine->pte_wq, par_mask, all_mask); + engine->pte_pinst = padata_alloc_possible(engine->pte_wq); if (engine->pte_pinst == NULL) GOTO(err_free_par_mask, rc = -ENOMEM); @@ -388,6 +394,10 @@ static int cfs_ptengine_padata_init(struct cfs_ptask_engine *engine, if (rc) GOTO(err_free_padata, rc); + rc = cfs_ptengine_set_cpumask(engine, par_mask); + if (rc) + GOTO(err_unregister, rc); + rc = padata_start(engine->pte_pinst); if (rc) GOTO(err_unregister, rc);