/**
* 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, unsigned int 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);
return true ;
}
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);
return true ;
}
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, unsigned int n)
{
if (!(css->flags & CSS_NO_REF))
percpu_ref_put_many(&css->refcnt, n);
}
CGROUP_REF_EXPORT(css_put_many)
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-09-28)
¤
*© Formatika GbR, Deutschland