From 60f1d526052795052655d67593759eb2db043ee1 Mon Sep 17 00:00:00 2001 From: Shuhei Matsumoto Date: Fri, 5 Jan 2018 08:58:14 +0900 Subject: [PATCH] iscsi: restore data_transferred accumulation for read In the patch 393582, by analyzing the code, accumulation of write completion to bdev was duplicated by data_transferred and bytes_completed. Hence accumulation of data_transferred for write was intended to be removed. However by mistake accumulation of data_transferred for read was removed. In this patch restore accumulation of data_transferred for read and remove accumlation of data_transferred for write. Test code to catch this degradation will be added by another patch soon. Change-Id: Iea9883e8ef1bfb0bdf00e291712e6faf2fad281f Signed-off-by: Shuhei Matsumoto Reviewed-on: https://review.gerrithub.io/393713 Tested-by: SPDK Automated Test System Reviewed-by: Daniel Verkamp Reviewed-by: Ziye Yang Reviewed-by: Jim Harris --- lib/iscsi/conn.c | 3 --- lib/iscsi/iscsi.c | 3 +++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/iscsi/conn.c b/lib/iscsi/conn.c index d22412f21..c36178fff 100644 --- a/lib/iscsi/conn.c +++ b/lib/iscsi/conn.c @@ -1070,9 +1070,6 @@ spdk_iscsi_task_cpl(struct spdk_scsi_task *scsi_task) if (spdk_iscsi_task_is_read(primary)) { process_read_task_completion(conn, task, primary); } else { - if (task != primary) { - primary->scsi.data_transferred += task->scsi.data_transferred; - } primary->bytes_completed += task->scsi.length; if ((task != primary) && (task->scsi.status != SPDK_SCSI_STATUS_GOOD)) { diff --git a/lib/iscsi/iscsi.c b/lib/iscsi/iscsi.c index 4585229c9..cd5eb0710 100644 --- a/lib/iscsi/iscsi.c +++ b/lib/iscsi/iscsi.c @@ -2834,6 +2834,9 @@ spdk_iscsi_transfer_in(struct spdk_iscsi_conn *conn, } } + if (task != primary) { + primary->scsi.data_transferred += task->scsi.data_transferred; + } primary->datain_datasn = DataSN; if (sent_status) {