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: Michael S. Tsirkin <mst@redhat.com>
diff --git a/drivers/vhost/tcm_vhost.c b/drivers/vhost/tcm_vhost.c
index afb5308..96d3b47 100644
--- a/drivers/vhost/tcm_vhost.c
+++ b/drivers/vhost/tcm_vhost.c
@@ -83,9 +83,16 @@
struct vhost_scsi_virtqueue {
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];
- /* 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;
};
@@ -1015,6 +1022,7 @@
vhost_poll_flush(&vs->vqs[index].vq.poll);
}
+/* Callers must hold dev mutex */
static void vhost_scsi_flush(struct vhost_scsi *vs)
{
struct vhost_scsi_inflight *old_inflight[VHOST_SCSI_MAX_VQ];