Lines Matching full:stats

62 	list_for_each_entry_rcu(cb, &q->stats->callbacks, list) {  in blk_stat_add()
148 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_add_callback()
149 list_add_tail_rcu(&cb->list, &q->stats->callbacks); in blk_stat_add_callback()
151 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_add_callback()
159 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_remove_callback()
161 if (list_empty(&q->stats->callbacks) && !q->stats->accounting) in blk_stat_remove_callback()
163 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_remove_callback()
188 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_disable_accounting()
189 if (!--q->stats->accounting && list_empty(&q->stats->callbacks)) in blk_stat_disable_accounting()
191 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_disable_accounting()
199 spin_lock_irqsave(&q->stats->lock, flags); in blk_stat_enable_accounting()
200 if (!q->stats->accounting++ && list_empty(&q->stats->callbacks)) in blk_stat_enable_accounting()
202 spin_unlock_irqrestore(&q->stats->lock, flags); in blk_stat_enable_accounting()
208 struct blk_queue_stats *stats; in blk_alloc_queue_stats() local
210 stats = kmalloc(sizeof(*stats), GFP_KERNEL); in blk_alloc_queue_stats()
211 if (!stats) in blk_alloc_queue_stats()
214 INIT_LIST_HEAD(&stats->callbacks); in blk_alloc_queue_stats()
215 spin_lock_init(&stats->lock); in blk_alloc_queue_stats()
216 stats->accounting = 0; in blk_alloc_queue_stats()
218 return stats; in blk_alloc_queue_stats()
221 void blk_free_queue_stats(struct blk_queue_stats *stats) in blk_free_queue_stats() argument
223 if (!stats) in blk_free_queue_stats()
226 WARN_ON(!list_empty(&stats->callbacks)); in blk_free_queue_stats()
228 kfree(stats); in blk_free_queue_stats()