MCPcopy Create free account
hub / github.com/F-Stack/f-stack / vdev_queue_io_done

Function vdev_queue_io_done

freebsd/contrib/openzfs/module/zfs/vdev_queue.c:980–1006  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

978}
979
980void
981vdev_queue_io_done(zio_t *zio)
982{
983 vdev_queue_t *vq = &zio->io_vd->vdev_queue;
984 zio_t *nio;
985
986 mutex_enter(&vq->vq_lock);
987
988 vdev_queue_pending_remove(vq, zio);
989
990 zio->io_delta = gethrtime() - zio->io_timestamp;
991 vq->vq_io_complete_ts = gethrtime();
992 vq->vq_io_delta_ts = vq->vq_io_complete_ts - zio->io_timestamp;
993
994 while ((nio = vdev_queue_io_to_issue(vq)) != NULL) {
995 mutex_exit(&vq->vq_lock);
996 if (nio->io_done == vdev_queue_agg_io_done) {
997 zio_nowait(nio);
998 } else {
999 zio_vdev_io_reissue(nio);
1000 zio_execute(nio);
1001 }
1002 mutex_enter(&vq->vq_lock);
1003 }
1004
1005 mutex_exit(&vq->vq_lock);
1006}
1007
1008void
1009vdev_queue_change_io_priority(zio_t *zio, zio_priority_t priority)

Callers 1

zio_vdev_io_doneFunction · 0.85

Calls 8

mutex_enterFunction · 0.85
vdev_queue_io_to_issueFunction · 0.85
mutex_exitFunction · 0.85
zio_nowaitFunction · 0.85
zio_vdev_io_reissueFunction · 0.85
zio_executeFunction · 0.85
gethrtimeFunction · 0.50

Tested by

no test coverage detected