/** * css_get - obtain a reference on the specified css * @css: target css * * The caller must already have a reference.
*/
CGROUP_REF_FN_ATTRS void css_get(struct cgroup_subsys_state *css)
{ if (!(css->flags & CSS_NO_REF))
percpu_ref_get(&css->refcnt);
}
CGROUP_REF_EXPORT(css_get)
/** * css_get_many - obtain references on the specified css * @css: target css * @n: number of references to get * * The caller must already have a reference.
*/
CGROUP_REF_FN_ATTRS void css_get_many(struct cgroup_subsys_state *css, unsignedint n)
{ if (!(css->flags & CSS_NO_REF))
percpu_ref_get_many(&css->refcnt, n);
}
CGROUP_REF_EXPORT(css_get_many)
/** * css_tryget - try to obtain a reference on the specified css * @css: target css * * Obtain a reference on @css unless it already has reached zero and is * being released. This function doesn't care whether @css is on or * offline. The caller naturally needs to ensure that @css is accessible * but doesn't have to be holding a reference on it - IOW, RCU protected * access is good enough for this function. Returns %true if a reference * count was successfully obtained; %false otherwise.
*/
CGROUP_REF_FN_ATTRS bool css_tryget(struct cgroup_subsys_state *css)
{ if (!(css->flags & CSS_NO_REF)) return percpu_ref_tryget(&css->refcnt); returntrue;
}
CGROUP_REF_EXPORT(css_tryget)
/** * css_tryget_online - try to obtain a reference on the specified css if online * @css: target css * * Obtain a reference on @css if it's online. The caller naturally needs * to ensure that @css is accessible but doesn't have to be holding a * reference on it - IOW, RCU protected access is good enough for this * function. Returns %true if a reference count was successfully obtained; * %false otherwise.
*/
CGROUP_REF_FN_ATTRS bool css_tryget_online(struct cgroup_subsys_state *css)
{ if (!(css->flags & CSS_NO_REF)) return percpu_ref_tryget_live(&css->refcnt); returntrue;
}
CGROUP_REF_EXPORT(css_tryget_online)
/** * css_put - put a css reference * @css: target css * * Put a reference obtained via css_get() and css_tryget_online().
*/
CGROUP_REF_FN_ATTRS void css_put(struct cgroup_subsys_state *css)
{ if (!(css->flags & CSS_NO_REF))
percpu_ref_put(&css->refcnt);
}
CGROUP_REF_EXPORT(css_put)
/** * css_put_many - put css references * @css: target css * @n: number of references to put * * Put references obtained via css_get() and css_tryget_online().
*/
CGROUP_REF_FN_ATTRS void css_put_many(struct cgroup_subsys_state *css, unsignedint n)
{ if (!(css->flags & CSS_NO_REF))
percpu_ref_put_many(&css->refcnt, n);
}
CGROUP_REF_EXPORT(css_put_many)
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.