diff options
author | dmitry_yus <dmitry_yus@d7303112-9cec-0310-bdd2-e83a94d6c2b6> | 2005-05-23 19:27:22 +0000 |
---|---|---|
committer | dmitry_yus <dmitry_yus@d7303112-9cec-0310-bdd2-e83a94d6c2b6> | 2005-05-23 19:27:22 +0000 |
commit | 4f66fc12ab579386e6113c4d14239a4cb08db361 (patch) | |
tree | 1e98a090df8a8b28b0abe37495ce8102c16805a3 | |
parent | bcf58ebe4ddb3f62314ecbd6403cbc4b80b047a5 (diff) | |
download | open-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.c | 7 |
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; } |