iscsi-target: Fix SNACK Type 1 + BegRun=0 handling
authorNicholas Bellinger <nab@linux-iscsi.org>
Mon, 3 Feb 2014 20:55:42 +0000 (12:55 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 12 Feb 2014 23:11:17 +0000 (15:11 -0800)
This patch fixes Status SNACK handling of BegRun=0 to allow
for all unacknowledged respones to be resent, instead of
always assuming that BegRun would be an explicit value less
than the current ExpStatSN.

Reported-by: santosh kulkarni <santosh.kulkarni@calsoftinc.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/iscsi/iscsi_target_erl1.c

index e048d64..cda4d80 100644 (file)
@@ -507,7 +507,9 @@ int iscsit_handle_status_snack(
        u32 last_statsn;
        int found_cmd;
 
-       if (conn->exp_statsn > begrun) {
+       if (!begrun) {
+               begrun = conn->exp_statsn;
+       } else if (conn->exp_statsn > begrun) {
                pr_err("Got Status SNACK Begrun: 0x%08x, RunLength:"
                        " 0x%08x but already got ExpStatSN: 0x%08x on CID:"
                        " %hu.\n", begrun, runlength, conn->exp_statsn,