On 08/07/2009 09:59 PM, Mike Christie wrote: > On 08/07/2009 05:27 AM, Hannes Reinecke wrote: >> When checking for the SUSPEND bit we have to make sure >> to transfer complete PDUs, otherwise the target will barf. >> > > > What do you mean it will barf? > > We normally will eventually send the other part of the PDU. We have > these cases: > > > 1. If we are doing ERL0 then we won't, but it does not matter because we > kill the tcp/ip connection and iscsi connection/session. > > 2. If we get suspended because of a TMF cleanup, then we would hit that, > but when the xmit thread resumes conn->task will be this task so we will > start it up again. > - The exception is here if conn->task is the one we are aborting or is > affected by the reset. However, in this case the target should not be > sending a tmf response while it is waiting for the data to be sent. > > Is there a 3rd you are hitting or a bug in the existing code? >
Oh yeah, I removed the suspend check in iscsi_sw_tcp_xmit_segment, but we can still hit the exception in #2. If we hit the sendtmo, then part of the pdu could be sent. We would then hit another suspend bit check higher up or if you use that one patch where EAGAIN got changed to ENOBUFS then we are going to exit from iscsi_data_xmit. If you are using your cmdsn patch, you can also exit from iscsi_data_xmit early. For the #2 exception case though the target should get fixed. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to open-iscsi@googlegroups.com To unsubscribe from this group, send email to open-iscsi+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/open-iscsi -~----------~----~----~----~------~----~------~--~---