Hi Hannes,
On 7/19/16 22:25, Hannes Reinecke wrote:
We can map the RESET WRITE POINTER command onto a 'discard'
request.
Signed-off-by: Hannes Reinecke <h...@suse.de>
---
drivers/scsi/sd.c | 65 ++++++++++++++++++++++++++++++++++++++++++++-----------
drivers/scsi/sd.h | 1 +
2 files changed, 53 insertions(+), 13 deletions(-)
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 249ea81..52dda83 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -369,6 +369,7 @@ static const char *lbp_mode[] = {
[SD_LBP_WS16] = "writesame_16",
[SD_LBP_WS10] = "writesame_10",
[SD_LBP_ZERO] = "writesame_zero",
+ [SD_ZBC_RESET_WP] = "reset_wp",
[SD_LBP_DISABLE] = "disabled",
};
@@ -391,6 +392,13 @@ provisioning_mode_store(struct device *dev, struct
device_attribute *attr,
if (!capable(CAP_SYS_ADMIN))
return -EACCES;
+ if (sdkp->zoned == 1) {
+ if (!strncmp(buf, lbp_mode[SD_ZBC_RESET_WP], 20)) {
+ sd_config_discard(sdkp, SD_ZBC_RESET_WP);
+ return count;
+ }
+ return -EINVAL;
+ }
if (sdp->type != TYPE_DISK)
return -EINVAL;
@@ -683,6 +691,11 @@ static void sd_config_discard(struct scsi_disk *sdkp,
unsigned int mode)
q->limits.discard_zeroes_data = sdkp->lbprz;
break;
+ case SD_ZBC_RESET_WP:
+ max_blocks = sdkp->unmap_granularity;
+ q->limits.discard_zeroes_data = 1;
+ break;
+
case SD_LBP_ZERO:
max_blocks = min_not_zero(sdkp->max_ws_blocks,
(u32)SD_MAX_WS10_BLOCKS);
I am still wondering if setting discard_zeroes_data to 1 is the right
choice here since nothing will happen for conventional zones (no
zeroing, no reset, nothing). discard_zeroes_data=0 may be a safer
choice, even though I have not hit any issue with it set to 1.
Reviewed-by: Damien Le Moal <damien.lem...@hgst.com>
Tested-by: Damien Le Moal <damien.lem...@hgst.com>
--
Damien Le Moal, Ph.D.
Sr. Manager, System Software Group, HGST Research,
HGST, a Western Digital brand
damien.lem...@hgst.com
(+81) 0466-98-3593 (ext. 513593)
1 kirihara-cho, Fujisawa,
Kanagawa, 252-0888 Japan
www.hgst.com
Western Digital Corporation (and its subsidiaries) E-mail Confidentiality Notice
& Disclaimer:
This e-mail and any files transmitted with it may contain confidential or
legally privileged information of WDC and/or its affiliates, and are intended
solely for the use of the individual or entity to which they are addressed. If
you are not the intended recipient, any disclosure, copying, distribution or
any action taken or omitted to be taken in reliance on it, is prohibited. If
you have received this e-mail in error, please notify the sender immediately
and delete the e-mail in its entirety from your system.
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html