diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2014-02-03 12:55:42 -0800 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2014-02-12 15:11:17 -0800 |
commit | 752d86805b18e58c56c6f3c7004c2dffd4430c17 (patch) | |
tree | dede6ee8a09fe85f89adc5d627b694c6616cbb5a | |
parent | 6a16d7be932a9df1024836ccbb448de73afd3dd0 (diff) | |
download | op-kernel-dev-752d86805b18e58c56c6f3c7004c2dffd4430c17.zip op-kernel-dev-752d86805b18e58c56c6f3c7004c2dffd4430c17.tar.gz |
iscsi-target: Fix SNACK Type 1 + BegRun=0 handling
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>
-rw-r--r-- | drivers/target/iscsi/iscsi_target_erl1.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c index e048d64..cda4d80 100644 --- a/drivers/target/iscsi/iscsi_target_erl1.c +++ b/drivers/target/iscsi/iscsi_target_erl1.c @@ -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, |