workqueue: copy workqueue_attrs with all fields
authorShaohua Li <shli@kernel.org>
Thu, 1 Aug 2013 01:56:36 +0000 (09:56 +0800)
committerTejun Heo <tj@kernel.org>
Thu, 1 Aug 2013 12:36:40 +0000 (08:36 -0400)
commit2865a8fb44cc32420407362cbda80c10fa09c6b2
treea4f3ca6dc957b7676610476b35e4342ad9a497d1
parentc2fda509667b0fda4372a237f5a59ea4570b1627
workqueue: copy workqueue_attrs with all fields

 $echo '0' > /sys/bus/workqueue/devices/xxx/numa
 $cat /sys/bus/workqueue/devices/xxx/numa

I got 1. It should be 0, the reason is copy_workqueue_attrs() called
in apply_workqueue_attrs() doesn't copy no_numa field.

Fix it by making copy_workqueue_attrs() copy ->no_numa too.  This
would also make get_unbound_pool() set a pool's ->no_numa attribute
according to the workqueue attributes used when the pool was created.
While harmelss, as ->no_numa isn't a pool attribute, this is a bit
confusing.  Clear it explicitly.

tj: Updated description and comments a bit.

Signed-off-by: Shaohua Li <shli@fusionio.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: stable@vger.kernel.org
kernel/workqueue.c