]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: sd: Implement blacklist option for WRITE SAME w/ UNMAP
authorMartin K. Petersen <martin.petersen@oracle.com>
Thu, 28 Sep 2017 01:35:12 +0000 (21:35 -0400)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 3 Oct 2017 02:16:18 +0000 (22:16 -0400)
commit2a52aa8196ba67f2451d63d52dc6e04861c012ee
treed9cae3be601b655420b9c765841e310d102a51d8
parentab06923c16de731b4b72f5d141b92cf611fb415f
scsi: sd: Implement blacklist option for WRITE SAME w/ UNMAP

SBC-4 states:

  "A MAXIMUM UNMAP LBA COUNT field set to a non-zero value indicates the
   maximum number of LBAs that may be unmapped by an UNMAP command"

  "A MAXIMUM WRITE SAME LENGTH field set to a non-zero value indicates
   the maximum number of contiguous logical blocks that the device server
   allows to be unmapped or written in a single WRITE SAME command."

Despite the spec being clear on the topic, some devices incorrectly
expect WRITE SAME commands with the UNMAP bit set to be limited to the
value reported in MAXIMUM UNMAP LBA COUNT in the Block Limits VPD.

Implement a blacklist option that can be used to accommodate devices
with this behavior.

Cc: <stable@vger.kernel.org>
Reported-by: Bill Kuzeja <William.Kuzeja@stratus.com>
Reported-by: Ewan D. Milne <emilne@redhat.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Tested-by: Laurence Oberman <loberman@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/scsi_scan.c
drivers/scsi/sd.c
include/scsi/scsi_device.h
include/scsi/scsi_devinfo.h