Files
odroid-linux/include/linux
Kent Overstreet 215e262f2a percpu: implement generic percpu refcounting
This implements a refcount with similar semantics to
atomic_get()/atomic_dec_and_test() - but percpu.

It also implements two stage shutdown, as we need it to tear down the
percpu counts.  Before dropping the initial refcount, you must call
percpu_ref_kill(); this puts the refcount in "shutting down mode" and
switches back to a single atomic refcount with the appropriate
barriers (synchronize_rcu()).

It's also legal to call percpu_ref_kill() multiple times - it only
returns true once, so callers don't have to reimplement shutdown
synchronization.

[akpm@linux-foundation.org: fix build]
[akpm@linux-foundation.org: coding-style tweak]
Signed-off-by: Kent Overstreet <koverstreet@google.com>
Cc: Zach Brown <zab@redhat.com>
Cc: Felipe Balbi <balbi@ti.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Asai Thambi S P <asamymuthupa@micron.com>
Cc: Selvan Mani <smani@micron.com>
Cc: Sam Bradshaw <sbradshaw@micron.com>
Cc: Jeff Moyer <jmoyer@redhat.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Benjamin LaHaise <bcrl@kvack.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Christoph Lameter <cl@linux-foundation.org>
Cc: Ingo Molnar <mingo@redhat.com>
Reviewed-by: "Theodore Ts'o" <tytso@mit.edu>
Signed-off-by: Tejun Heo <tj@kernel.org>
2013-06-03 15:36:41 -07:00
..
2013-05-17 14:31:05 -04:00
2013-03-01 13:39:00 -08:00
2013-01-02 17:36:10 -08:00
2013-05-07 19:46:02 -07:00
2012-12-02 00:05:12 +00:00
2013-04-29 15:40:23 -04:00
2013-03-23 16:11:31 -07:00
2013-03-22 15:18:18 -07:00
2013-04-08 17:39:23 +02:00
2013-03-12 11:30:04 -07:00
2013-05-10 14:37:17 +01:00
2013-05-01 16:36:22 +05:30
2013-03-28 10:10:25 -06:00
2012-12-24 09:36:38 -07:00
2012-10-16 18:49:15 -07:00
2013-02-26 02:46:08 -05:00
2013-05-07 18:38:27 -07:00
2013-03-15 15:09:43 +10:30
2013-04-29 18:28:40 -07:00
2012-11-22 13:43:27 +09:00
2013-05-01 16:28:48 -04:00
2013-05-07 02:16:31 -04:00
2013-02-22 23:31:31 -05:00
2012-11-08 16:58:30 +01:00
2013-05-06 13:07:33 +02:00
2013-01-25 21:03:54 -08:00
2013-02-06 15:59:47 -05:00
2013-03-06 14:55:20 -05:00
2013-01-29 13:59:57 -05:00
2013-01-10 11:44:38 -06:00
2013-04-30 17:04:06 -07:00
2013-04-01 11:04:50 -07:00
2013-04-30 17:04:00 -07:00
2013-03-15 15:09:43 +10:30
2012-12-14 13:06:40 +10:30
2012-12-25 18:45:06 -05:00
2013-04-29 18:28:44 -07:00
2012-12-11 17:22:27 -08:00
2013-05-04 14:47:26 -04:00
2012-10-17 15:53:02 -05:00
2013-04-29 15:54:28 -07:00
2013-03-12 11:40:53 -04:00
2013-04-29 15:54:28 -07:00
2013-04-12 10:26:23 +02:00
2013-04-09 14:13:29 -04:00
2013-02-19 08:43:34 +01:00
2013-03-29 15:31:30 -04:00
2013-04-30 15:50:12 +05:30
2013-03-21 11:47:51 -04:00
2013-01-15 22:43:15 -08:00
2013-03-20 12:10:38 -04:00
2013-03-28 11:10:22 -07:00
2013-04-29 15:54:37 -07:00