| 562 | } |
| 563 | |
| 564 | static void |
| 565 | vdev_queue_pending_add(vdev_queue_t *vq, zio_t *zio) |
| 566 | { |
| 567 | spa_t *spa = zio->io_spa; |
| 568 | spa_history_kstat_t *shk = &spa->spa_stats.io_history; |
| 569 | |
| 570 | ASSERT(MUTEX_HELD(&vq->vq_lock)); |
| 571 | ASSERT3U(zio->io_priority, <, ZIO_PRIORITY_NUM_QUEUEABLE); |
| 572 | vq->vq_class[zio->io_priority].vqc_active++; |
| 573 | if (vdev_queue_is_interactive(zio->io_priority)) { |
| 574 | if (++vq->vq_ia_active == 1) |
| 575 | vq->vq_nia_credit = 1; |
| 576 | } else if (vq->vq_ia_active > 0) { |
| 577 | vq->vq_nia_credit--; |
| 578 | } |
| 579 | avl_add(&vq->vq_active_tree, zio); |
| 580 | |
| 581 | if (shk->kstat != NULL) { |
| 582 | mutex_enter(&shk->lock); |
| 583 | kstat_runq_enter(shk->kstat->ks_data); |
| 584 | mutex_exit(&shk->lock); |
| 585 | } |
| 586 | } |
| 587 | |
| 588 | static void |
| 589 | vdev_queue_pending_remove(vdev_queue_t *vq, zio_t *zio) |
no test coverage detected