Selaa lähdekoodia

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>
Lai Jiangshan 10 vuotta sitten
vanhempi
commit
899a94fe15
1 muutettua tiedostoa jossa 2 lisäystä ja 2 poistoa
  1. 2 2
      kernel/workqueue.c

+ 2 - 2
kernel/workqueue.c

@@ -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;
 }
 }