• Martin K. Petersen's avatar
    [SCSI] sd: Update WRITE SAME heuristics · 66c28f97
    Martin K. Petersen authored
    SATA drives located behind a SAS controller would incorrectly receive
    WRITE SAME commands. Tweak the heuristics so that:
    
     - If REPORT SUPPORTED OPERATION CODES is provided we will use that to
       choose between WRITE SAME(16), WRITE SAME(10) and disabled. This also
       fixes an issue with the old code which would issue WRITE SAME(10)
       despite the command not being whitelisted in REPORT SUPPORTED
       OPERATION CODES.
    
     - If REPORT SUPPORTED OPERATION CODES is not provided we will fall back
       to WRITE SAME(10) unless the device has an ATA Information VPD page.
       The assumption is that a SATL which is smart enough to implement
       WRITE SAME would also provide REPORT SUPPORTED OPERATION CODES.
    
    To facilitate the new heuristics scsi_report_opcode() has been modified
    to so we can distinguish between "operation not supported" and "RSOC not
    supported".
    Reported-by: default avatarH. Peter Anvin <hpa@zytor.com>
    Tested-by: default avatarBernd Schubert <bernd.schubert@itwm.fraunhofer.de>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
    66c28f97
scsi.c 38.5 KB