blob: 08dbdf38f088eef50edc3be8652445d21ee2824c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
* optimize queue->lock, use atomic operations if possible
* do we need ctask->sg_count? can we use ctask->sg instead?
* optimize HEAD + SENDBUF logic, no need to have two "if" statements:
}
ctask->r2t = r2t;
ctask->in_progress = IN_PROGRESS_SOLICIT_WRITE;
/* can goto to fixme */
}
if (ctask->in_progress == IN_PROGRESS_SOLICIT_WRITE) {
r2t = ctask->r2t;
_solicit_again:
/*
* send Data-Out's payload whitnin this R2T sequence.
*/
if (r2t->data_count) {
fixme:
len = r2t->sendbuf.size - r2t->sendbuf.sent;
if (len > r2t->data_count) {
len = r2t->data_count;
* data_xmit(): recover sendpage() error.
* make sense to split data_recv() and exctract data-in processing into
separated function. Call it from header processing context directly if
there is an iSCSI data and from data_recv() later on conn state machine
processing.
* restructure header processing code into set of small functions.
* prefetch in tcp_copy_bits().
* support residual_count in case of scatter-gather Data-In. As of today, only
non-sg Scsi_Cmnd's are working. But I can amazing some target which will
send residual_count in the middle of scatter-gather Data-In.
* daemon should manage its own ITT-space
* send_pdu() should use new "anon" poll of mtasks. the anon-mtask will be freed
right after its xmited
* make InitiatorAlias configurable: see get_iscsi_initiatorname()
* Ming> ./usr/iscsiadm -m discovery -t st -p littleboy.iplink.net
iscsiadm: cannot resolve host name littleboy.iplink
|