• Paolo Bonzini's avatar
    target: go through normal processing for zero-length PSCSI commands · 306c11b2
    Paolo Bonzini authored
    Right now, commands with a zero-size payload are skipped completely.
    This is wrong; such commands should be passed down to the device and
    processed normally.
    
    For physical backends, this ignores completely things such as START
    STOP UNIT.  For virtual backends, we have a hack in place to clear a
    unit attention state on a zero-size REQUEST SENSE, but we still do
    not report errors properly on zero-length commands---out-of-bounds
    0-block reads and writes, too small parameter list lengths, etc.
    
    This patch fixes this for PSCSI.  Uses of transport_kmap_data_sg are
    guarded with a check for non-zero cmd->data_length; for all other
    commands a zero length is handled properly in pscsi_execute_cmd.
    The sole exception will be for now REPORT LUNS, which is handled
    through the normal SPC emulation.
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
    306c11b2
target_core_transport.c 84.3 KB