• Nicholas Bellinger's avatar
    Revert "target: Fix residual overflow handling in target_complete_cmd_with_length" · 61f36166
    Nicholas Bellinger authored
    This reverts commit c1ccbfe0.
    
    Reverting this patch, as it incorrectly assumes the additional length
    for INQUIRY in target_complete_cmd_with_length() is SCSI allocation
    length, which breaks existing user-space code when SCSI allocation
    length is smaller than additional length.
    
      root@scsi-mq:~# sg_inq --len=4 -vvvv /dev/sdb
      found bsg_major=253
      open /dev/sdb with flags=0x800
          inquiry cdb: 12 00 00 00 04 00
            duration=0 ms
          inquiry: pass-through requested 4 bytes (data-in) but got -28 bytes
          inquiry: pass-through can't get negative bytes, say it got none
          inquiry: got too few bytes (0)
      INQUIRY resid (32) should never exceed requested len=4
          inquiry: failed requesting 4 byte response: Malformed response to
                   SCSI command [resid=32]
    
    AFAICT the original change was not to address a specific host issue,
    so go ahead and revert to original logic for now.
    
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Sumit Rai <sumitrai96@gmail.com>
    Cc: stable@vger.kernel.org # 4.8+
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    61f36166
target_core_transport.c 83.5 KB