summaryrefslogtreecommitdiff
path: root/include/net
diff options
context:
space:
mode:
authorMartin K. Petersen <martin.petersen@oracle.com>2017-04-05 19:21:24 +0200
committerJens Axboe <axboe@fb.com>2017-04-08 11:25:38 -0600
commite6bd931284b4b9bc17a2995257a0769370bc5202 (patch)
treee12c369f377128d409423f3dcc926445950bb1f8 /include/net
parent48920ff2a5a940cd07d12cc79e4a2c75f1185aee (diff)
scsi: sd: Separate zeroout and discard command choices
Now that zeroout and discards are distinct operations we need to separate the policy of choosing the appropriate command. Create a zeroing_mode which can be one of: write: Zeroout assist not present, use regular WRITE writesame: Allow WRITE SAME(10/16) with a zeroed payload writesame_16_unmap: Allow WRITE SAME(16) with UNMAP writesame_10_unmap: Allow WRITE SAME(10) with UNMAP The last two are conditional on the device being thin provisioned with LBPRZ=1 and LBPWS=1 or LBPWS10=1 respectively. Whether to set the UNMAP bit or not depends on the REQ_NOUNMAP flag. And if none of the _unmap variants are supported, regular WRITE SAME will be used if the device supports it. The zeroout_mode is exported in sysfs and the detected mode for a given device can be overridden using the string constants above. With this change in place we can now issue WRITE SAME(16) with UNMAP set for block zeroing applications that require hard guarantees and logical_block_size granularity. And at the same time use the UNMAP command with the device's preferred granulary and alignment for discard operations. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'include/net')
0 files changed, 0 insertions, 0 deletions