Ver Fonte

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>
Michael S. Tsirkin há 12 anos atrás
pai
commit
3dfbff328f
1 ficheiros alterados com 10 adições e 2 exclusões
  1. 10 2
      drivers/vhost/tcm_vhost.c

+ 10 - 2
drivers/vhost/tcm_vhost.c

@@ -83,9 +83,16 @@ struct vhost_scsi_inflight {
 
 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 @@ static void vhost_scsi_flush_vq(struct vhost_scsi *vs, int index)
 	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];