target: Fix se_cmd->state_list leak regression during WRITE failure
authorNicholas Bellinger <nab@linux-iscsi.org>
Sat, 31 Aug 2013 22:12:01 +0000 (15:12 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 31 Aug 2013 22:19:12 +0000 (15:19 -0700)
commitc130480b129fbfd7932ad7af3f4ffcea630b027f
treec6dd2c8143d557204e55c2023b28cd021beeb4ef
parent28aaa950320fc7b8df3f6d2d34fa7833391a9b72
target: Fix se_cmd->state_list leak regression during WRITE failure

This patch addresses a v3.11 specific regression where se_cmd->state_list
was being leaked during a fabric WRITE failure, when the fabric releases
an associated se_cmd descriptor before I/O submission occurs, and normal
fast path callbacks have a chance to call target_remove_from_state_list().

It was manifesting with Poison overwritten messages with iscsi-target
once an ImmediateData payload CRC32C failure occured.

This bug was originally introduced during v3.11-rc1 with the following
commit:

commit 0b66818ac6de67a6125ae203272fb76e79b3a20f
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Thu Jun 6 01:36:41 2013 -0700

    target: Drop unnecessary CMD_T_DEV_ACTIVE check from transport_lun_remove_cmd

Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_transport.c