Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -294,6 +294,20 @@ static inline void percpu_ref_put(struct percpu_ref *ref)
	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
 * @ref: percpu_ref to test