Lines Matching refs:blkg
92 struct blkcg_gq *blkg; member
196 const char *blkg_dev_name(struct blkcg_gq *blkg);
206 struct blkcg_gq *blkg; member
335 struct blkcg_gq *blkg; in __blkg_lookup() local
340 blkg = rcu_dereference(blkcg->blkg_hint); in __blkg_lookup()
341 if (blkg && blkg->q == q) in __blkg_lookup()
342 return blkg; in __blkg_lookup()
380 static inline struct blkg_policy_data *blkg_to_pd(struct blkcg_gq *blkg, in blkg_to_pd() argument
383 return blkg ? blkg->pd[pol->plid] : NULL; in blkg_to_pd()
400 return pd ? pd->blkg : NULL; in pd_to_blkg()
450 static inline int blkg_path(struct blkcg_gq *blkg, char *buf, int buflen) in blkg_path() argument
452 return cgroup_path(blkg->blkcg->css.cgroup, buf, buflen); in blkg_path()
461 static inline void blkg_get(struct blkcg_gq *blkg) in blkg_get() argument
463 percpu_ref_get(&blkg->refcnt); in blkg_get()
473 static inline bool blkg_tryget(struct blkcg_gq *blkg) in blkg_tryget() argument
475 return blkg && percpu_ref_tryget(&blkg->refcnt); in blkg_tryget()
482 static inline void blkg_put(struct blkcg_gq *blkg) in blkg_put() argument
484 percpu_ref_put(&blkg->refcnt); in blkg_put()
534 static inline void blkcg_use_delay(struct blkcg_gq *blkg) in blkcg_use_delay() argument
536 if (WARN_ON_ONCE(atomic_read(&blkg->use_delay) < 0)) in blkcg_use_delay()
538 if (atomic_add_return(1, &blkg->use_delay) == 1) in blkcg_use_delay()
539 atomic_inc(&blkg->blkcg->css.cgroup->congestion_count); in blkcg_use_delay()
542 static inline int blkcg_unuse_delay(struct blkcg_gq *blkg) in blkcg_unuse_delay() argument
544 int old = atomic_read(&blkg->use_delay); in blkcg_unuse_delay()
559 int cur = atomic_cmpxchg(&blkg->use_delay, old, old - 1); in blkcg_unuse_delay()
568 atomic_dec(&blkg->blkcg->css.cgroup->congestion_count); in blkcg_unuse_delay()
581 static inline void blkcg_set_delay(struct blkcg_gq *blkg, u64 delay) in blkcg_set_delay() argument
583 int old = atomic_read(&blkg->use_delay); in blkcg_set_delay()
586 if (!old && atomic_cmpxchg(&blkg->use_delay, old, -1) == old) in blkcg_set_delay()
587 atomic_inc(&blkg->blkcg->css.cgroup->congestion_count); in blkcg_set_delay()
589 atomic64_set(&blkg->delay_nsec, delay); in blkcg_set_delay()
598 static inline void blkcg_clear_delay(struct blkcg_gq *blkg) in blkcg_clear_delay() argument
600 int old = atomic_read(&blkg->use_delay); in blkcg_clear_delay()
603 if (old && atomic_cmpxchg(&blkg->use_delay, old, 0) == old) in blkcg_clear_delay()
604 atomic_dec(&blkg->blkcg->css.cgroup->congestion_count); in blkcg_clear_delay()
608 void blkcg_add_delay(struct blkcg_gq *blkg, u64 now, u64 delta);
652 static inline struct blkg_policy_data *blkg_to_pd(struct blkcg_gq *blkg, in blkg_to_pd() argument
655 static inline char *blkg_path(struct blkcg_gq *blkg) { return NULL; } in blkg_path() argument
656 static inline void blkg_get(struct blkcg_gq *blkg) { } in blkg_get() argument
657 static inline void blkg_put(struct blkcg_gq *blkg) { } in blkg_put() argument