diff options
Diffstat (limited to 'drivers/scsi/libiscsi_tcp.c')
| -rw-r--r-- | drivers/scsi/libiscsi_tcp.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/scsi/libiscsi_tcp.c b/drivers/scsi/libiscsi_tcp.c index b579ca9f483..db93cd0dfdb 100644 --- a/drivers/scsi/libiscsi_tcp.c +++ b/drivers/scsi/libiscsi_tcp.c @@ -473,7 +473,13 @@ static int iscsi_tcp_data_in(struct iscsi_conn *conn, struct iscsi_task *task)  	int datasn = be32_to_cpu(rhdr->datasn);  	unsigned total_in_length = scsi_in(task->sc)->length; -	iscsi_update_cmdsn(conn->session, (struct iscsi_nopin*)rhdr); +	/* +	 * lib iscsi will update this in the completion handling if there +	 * is status. +	 */ +	if (!(rhdr->flags & ISCSI_FLAG_DATA_STATUS)) +		iscsi_update_cmdsn(conn->session, (struct iscsi_nopin*)rhdr); +  	if (tcp_conn->in.datalen == 0)  		return 0;  |