Files
kernel/include/linux
Tejun Heo 2d7227828e percpu-refcount: implement percpu_ref_reinit() and percpu_ref_is_zero()
Now that explicit invocation of percpu_ref_exit() is necessary to free
the percpu counter, we can implement percpu_ref_reinit() which
reinitializes a released percpu_ref.  This can be used implement
scalable gating switch which can be drained and then re-opened without
worrying about memory allocation failures.

percpu_ref_is_zero() is added to be used in a sanity check in
percpu_ref_exit().  As this function will be useful for other purposes
too, make it a public interface.

v2: Use smp_read_barrier_depends() instead of smp_load_acquire().  We
    only need data dep barrier and smp_load_acquire() is stronger and
    heavier on some archs.  Spotted by Lai Jiangshan.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Kent Overstreet <kmo@daterainc.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Lai Jiangshan <laijs@cn.fujitsu.com>
2014-06-28 08:10:14 -04:00
..
2014-05-06 17:54:53 -04:00
2014-06-03 23:12:20 +02:00
2014-06-06 07:57:37 -06:00
2014-06-10 13:13:11 -06:00
2014-06-04 13:34:30 +09:00
2014-06-11 00:13:16 -07:00
2014-04-18 14:20:48 +02:00
2014-05-20 10:30:40 +09:00
2014-06-06 16:08:13 -07:00
2014-06-02 16:05:24 -07:00
2014-06-02 14:56:01 -07:00
2014-04-17 12:30:40 -07:00
2014-05-16 14:05:22 +02:00
2014-05-27 17:38:11 -07:00
2014-04-07 10:59:19 -07:00
2014-04-24 15:01:33 -06:00
2014-06-02 16:18:48 -06:00
2014-06-04 16:54:07 -07:00
2014-06-04 16:54:21 -07:00
2014-05-05 17:25:50 +10:00
2014-06-04 16:54:12 -07:00
2014-05-20 15:19:25 -05:00
2014-06-06 16:08:12 -07:00
2014-06-15 01:00:50 -07:00
2014-06-12 00:21:11 -04:00
2014-06-04 16:53:57 -07:00
2014-06-04 16:53:56 -07:00
2014-05-14 09:46:32 -07:00
2014-05-06 17:39:45 -04:00
2014-05-30 11:35:54 -06:00
2014-06-04 16:53:57 -07:00
2014-04-07 16:35:53 -07:00
2014-06-04 16:53:57 -07:00