Lines Matching refs:stats
62 list_for_each_entry_rcu(cb, &q->stats->callbacks, list) { in blk_stat_add()
147 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_add_callback()
148 list_add_tail_rcu(&cb->list, &q->stats->callbacks); in blk_stat_add_callback()
150 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_add_callback()
158 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_remove_callback()
160 if (list_empty(&q->stats->callbacks) && !q->stats->accounting) in blk_stat_remove_callback()
162 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_remove_callback()
187 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_disable_accounting()
188 if (!--q->stats->accounting && list_empty(&q->stats->callbacks)) in blk_stat_disable_accounting()
190 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_disable_accounting()
198 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_enable_accounting()
199 if (!q->stats->accounting++ && list_empty(&q->stats->callbacks)) in blk_stat_enable_accounting()
201 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_enable_accounting()
207 struct blk_queue_stats *stats; in blk_alloc_queue_stats() local
209 stats = kmalloc_obj(*stats); in blk_alloc_queue_stats()
210 if (!stats) in blk_alloc_queue_stats()
213 INIT_LIST_HEAD(&stats->callbacks); in blk_alloc_queue_stats()
214 spin_lock_init(&stats->lock); in blk_alloc_queue_stats()
215 stats->accounting = 0; in blk_alloc_queue_stats()
217 return stats; in blk_alloc_queue_stats()
220 void blk_free_queue_stats(struct blk_queue_stats *stats) in blk_free_queue_stats() argument
222 if (!stats) in blk_free_queue_stats()
225 WARN_ON(!list_empty(&stats->callbacks)); in blk_free_queue_stats()
227 kfree(stats); in blk_free_queue_stats()