Commit 4c907baf authored by Tejun Heo's avatar Tejun Heo

percpu_ref: implement percpu_ref_is_dying()

Implement percpu_ref_is_dying() which tests whether the ref is dying
or dead.  This is useful to determine the current state when a
percpu_ref is used as a cyclic on/off switch via kill and reinit.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Cc: Kent Overstreet <kmo@daterainc.com>
parent 6810e4a3
...@@ -294,6 +294,20 @@ static inline void percpu_ref_put(struct percpu_ref *ref) ...@@ -294,6 +294,20 @@ static inline void percpu_ref_put(struct percpu_ref *ref)
percpu_ref_put_many(ref, 1); percpu_ref_put_many(ref, 1);
} }
/**
* percpu_ref_is_dying - test whether a percpu refcount is dying or dead
* @ref: percpu_ref to test
*
* Returns %true if @ref is dying or dead.
*
* This function is safe to call as long as @ref is between init and exit
* and the caller is responsible for synchronizing against state changes.
*/
static inline bool percpu_ref_is_dying(struct percpu_ref *ref)
{
return ref->percpu_count_ptr & __PERCPU_REF_DEAD;
}
/** /**
* percpu_ref_is_zero - test whether a percpu refcount reached zero * percpu_ref_is_zero - test whether a percpu refcount reached zero
* @ref: percpu_ref to test * @ref: percpu_ref to test
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment