On Thu, Mar 30, 2017 at 11:28:32AM -0400, Martin K. Petersen wrote: > "hch@xxxxxx" <hch@xxxxxx> writes: > > Christoph, > > > On Tue, Mar 28, 2017 at 04:48:55PM +0000, Bart Van Assche wrote: > >> > if (sdp->no_write_same) > >> > return BLKPREP_INVALID; > >> > if (sdkp->ws16 || sector > 0xffffffff || nr_sectors > 0xffff) > >> > >> Users can change the provisioning mode from user space from SD_LBP_WS16 into > >> SD_LBP_WS10 so I'm not sure it's safe to skip the (sdkp->ws16 || sector > > >> 0xffffffff || nr_sectors > 0xffff) check if REQ_UNMAP is set. > > > > They can, and if the device has too many sectors that will already cause > > discard to fail, > > I'm not sure I understand what you mean by that? If you manually change the provisioning mode to WS10 on a device that must use WRITE SAME (16) to be able to address all blocks you're already screwed right now, and with this patch you can screw yourself through the WRITE_ZEROES path in addition to the DISCARD path.