workqueue: remove the lock from wq_sysfs_prep_attrs()
Reading to wq->unbound_attrs requires protection of either wq_pool_mutex or wq->mutex, and wq_sysfs_prep_attrs() is called with wq_pool_mutex held, so we don't need to grab wq->mutex here. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
@@ -4937,13 +4937,13 @@ static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
|
|||||||
{
|
{
|
||||||
struct workqueue_attrs *attrs;
|
struct workqueue_attrs *attrs;
|
||||||
|
|
||||||
|
lockdep_assert_held(&wq_pool_mutex);
|
||||||
|
|
||||||
attrs = alloc_workqueue_attrs(GFP_KERNEL);
|
attrs = alloc_workqueue_attrs(GFP_KERNEL);
|
||||||
if (!attrs)
|
if (!attrs)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
mutex_lock(&wq->mutex);
|
|
||||||
copy_workqueue_attrs(attrs, wq->unbound_attrs);
|
copy_workqueue_attrs(attrs, wq->unbound_attrs);
|
||||||
mutex_unlock(&wq->mutex);
|
|
||||||
return attrs;
|
return attrs;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user