• Nicholas Bellinger's avatar
    target: Fix regression bug with handling of zero-length data CDBs · 74f4cf29
    Nicholas Bellinger authored
    This patch fixes a regression bug with the handling of zero-length
    data CDBs within transport_generic_new_cmd() code.  The bug was introduced
    with the following commit as part of the single task conversion work:
    
      commit 4101f0a8
      Author: Christoph Hellwig <hch@infradead.org>
      Date:   Tue Apr 24 00:25:03 2012 -0400
    
          target: always allocate a single task
    
    where the zero-length check for SCF_SCSI_DATA_SG_IO_CDB was incorrectly
    changed to SCF_SCSI_CONTROL_SG_IO_CDB because of the seperate comment
    in transport_generic_new_cmd() wrt to control CDBs zero-length handling
    introduced in:
    
      commit 91ec1d35
      Author: Nicholas Bellinger <nab@linux-iscsi.org>
      Date:   Fri Jan 13 12:01:34 2012 -0800
    
          target: Add workaround for zero-length control CDB handling
    
    So go ahead and change transport_generic_new_cmd() to handle control+data
    zero-length CDBs in the same manner for this special case.
    
    Tested with iscsi-target + loopback fabric port LUNs on 3.6-rc0 code.
    
    This patch will also need to be picked up for 3.5-stable.
    
    (hch: Add proper comment in transport_generic_new_cmd)
    
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Roland Dreier <roland@purestorage.com>
    Cc: Andy Grover <agrover@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    74f4cf29
target_core_transport.c 84.7 KB