Commit 3dfbff32 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin

tcm_vhost: document inflight ref-counting use

Add more comments so we remember not to break it
next time we change things.
Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 2839400f
...@@ -83,9 +83,16 @@ struct vhost_scsi_inflight { ...@@ -83,9 +83,16 @@ struct vhost_scsi_inflight {
struct vhost_scsi_virtqueue { struct vhost_scsi_virtqueue {
struct vhost_virtqueue vq; struct vhost_virtqueue vq;
/* Track inflight reqs, protected by vq->mutex */ /*
* Reference counting for inflight reqs, used for flush operation. At
* each time, one reference tracks new commands submitted, while we
* wait for another one to reach 0.
*/
struct vhost_scsi_inflight inflights[2]; struct vhost_scsi_inflight inflights[2];
/* Indicate current inflight in use, protected by vq->mutex */ /*
* Indicate current inflight in use, protected by vq->mutex.
* Writers must also take dev mutex and flush under it.
*/
int inflight_idx; int inflight_idx;
}; };
...@@ -1015,6 +1022,7 @@ static void vhost_scsi_flush_vq(struct vhost_scsi *vs, int index) ...@@ -1015,6 +1022,7 @@ static void vhost_scsi_flush_vq(struct vhost_scsi *vs, int index)
vhost_poll_flush(&vs->vqs[index].vq.poll); vhost_poll_flush(&vs->vqs[index].vq.poll);
} }
/* Callers must hold dev mutex */
static void vhost_scsi_flush(struct vhost_scsi *vs) static void vhost_scsi_flush(struct vhost_scsi *vs)
{ {
struct vhost_scsi_inflight *old_inflight[VHOST_SCSI_MAX_VQ]; struct vhost_scsi_inflight *old_inflight[VHOST_SCSI_MAX_VQ];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment