[SCSI] libiscsi: don't increment cmdsn if cmd is not sent
authorMike Christie <michaelc@cs.wisc.edu>
Thu, 20 Aug 2009 20:10:58 +0000 (15:10 -0500)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 5 Sep 2009 14:42:41 +0000 (09:42 -0500)
commitd3305f3407fa3e9452079ec6cc8379067456e4aa
tree8e8abaea070305d25d9de788dd07e5cdbd8b6f83
parent523eeac6703a995d58918aaf321f128f75c13108
[SCSI] libiscsi: don't increment cmdsn if cmd is not sent

We increment session->cmdsn at the top of iscsi_prep_scsi_cmd_pdu, but
if the prep  ecb or prep bidi or init_task calls fails then we leave the
session->cmdsn incremented. This moves the cmdsn manipulation to the end
of the function when we know it has succeeded.

It also adds a session->cmdsn--; in queuecommand for if a driver like
bnx2i tries to send a a task from that context but it fails. We do not
have to do this in the xmit thread context because that code will retry
the same task if the initial call fails.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libiscsi.c