summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordmitry_yus <dmitry_yus@d7303112-9cec-0310-bdd2-e83a94d6c2b6>2005-05-23 19:27:22 +0000
committerdmitry_yus <dmitry_yus@d7303112-9cec-0310-bdd2-e83a94d6c2b6>2005-05-23 19:27:22 +0000
commit4f66fc12ab579386e6113c4d14239a4cb08db361 (patch)
tree1e98a090df8a8b28b0abe37495ce8102c16805a3
parentbcf58ebe4ddb3f62314ecbd6403cbc4b80b047a5 (diff)
downloadopen-iscsi-4f66fc12ab579386e6113c4d14239a4cb08db361.tar.gz
fixed iscsi_ctask_copy() buffer length bug. Problem was observed when
using bonnie++ as a part of regression.sh git-svn-id: svn://svn.berlios.de/open-iscsi@332 d7303112-9cec-0310-bdd2-e83a94d6c2b6
-rw-r--r--kernel/iscsi_tcp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/iscsi_tcp.c b/kernel/iscsi_tcp.c
index 9b526b3..a865a40 100644
--- a/kernel/iscsi_tcp.c
+++ b/kernel/iscsi_tcp.c
@@ -861,7 +861,7 @@ iscsi_data_recv(struct iscsi_conn *conn)
dest = kmap_atomic(sg[i].page, KM_USER0);
rc = iscsi_ctask_copy(conn, ctask,
dest + sg[i].offset,
- sg->length);
+ sg[i].length);
kunmap_atomic(dest, KM_USER0);
if (rc == -EAGAIN)
/* continue with the next SKB/PDU */
@@ -877,6 +877,7 @@ iscsi_data_recv(struct iscsi_conn *conn)
goto exit;
}
}
+ BUG_ON(ctask->data_count);
} else {
rc = iscsi_ctask_copy(conn, ctask, sc->request_buffer,
sc->request_bufflen);
@@ -1021,7 +1022,7 @@ more:
if (rc) {
if (rc == -EAGAIN) {
rd_desc->count = conn->in.datalen -
- conn->in.ctask->sent;
+ conn->in.ctask->data_count;
goto again;
}
iscsi_conn_failure(conn, rc);
@@ -2544,7 +2545,7 @@ iscsi_eh_host_reset(struct scsi_cmnd *sc)
struct iscsi_conn *conn = ctask->conn;
iscsi_conn_failure(conn, ISCSI_ERR_CONN_FAILED);
debug_scsi("failing connection CID %d due to SCSI host reset "
- "[itt 0x%x age %d]", conn->cid, ctask->itt,
+ "[itt 0x%x age %d]", conn->id, ctask->itt,
conn->session->age);
return SUCCESS;
}