• Nicholas Bellinger's avatar
    target: Fix zero-length READ_CAPACITY_16 regression · 8b4b0dcb
    Nicholas Bellinger authored
    This patch fixes a regression introduced in v3.8-rc1 code where a
    zero-length READ_CAPACITY_16 was no longer returning GOOD status, but
    instead returning TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE to generate
    a CHECK_CONDITION status.
    
    This regression was introduced with the following commit:
    
      commit de103c93
      Author: Christoph Hellwig <hch@lst.de>
      Date:   Tue Nov 6 12:24:09 2012 -0800
    
          target: pass sense_reason as a return value
    
    and this patch has been tested with the following zero-length CDB:
    
      sg_raw /dev/sdd 9e 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      SCSI Status: Good
    
      Sense Information:
      sense buffer empty
    
    Also, convert sbc_emulate_readcapacity() to follow the same method
    of handling transport_kmap_data_sg() return values, but we never
    expect a zero-length request here.
    
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Roland Dreier <roland@purestorage.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    8b4b0dcb
target_core_sbc.c 16 KB