diff options
author | Martin K. Petersen <martin.petersen@oracle.com> | 2016-03-05 17:52:02 -0500 |
---|---|---|
committer | Martin K. Petersen <martin.petersen@oracle.com> | 2016-03-14 15:50:06 -0400 |
commit | f4327a95dd080ed6aecb185478a88ce1ee4fa3c4 (patch) | |
tree | cd38ef4c0b5787c4f63d9f717bfb64d8555bf4ec /drivers/scsi/sd.c | |
parent | 688875826f0dfbe34d9eda4c47b707d08130fe7b (diff) |
sd: Fix discard granularity when LBPRZ=1
Commit 397737223c59 ("sd: Make discard granularity match logical block
size when LBPRZ=1") accidentally set the granularity to one byte instead
of one logical block on devices that provide deterministic zeroes after
UNMAP.
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Reported-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Ewan Milne <emilne@redhat.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Fixes: 397737223c59e89dca7305feb6528caef8fbef84
Cc: <stable@vger.kernel.org> #v4.4+
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r-- | drivers/scsi/sd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index d749da765df1..5a5457ac9cdb 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -648,7 +648,7 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode) | |||
648 | */ | 648 | */ |
649 | if (sdkp->lbprz) { | 649 | if (sdkp->lbprz) { |
650 | q->limits.discard_alignment = 0; | 650 | q->limits.discard_alignment = 0; |
651 | q->limits.discard_granularity = 1; | 651 | q->limits.discard_granularity = logical_block_size; |
652 | } else { | 652 | } else { |
653 | q->limits.discard_alignment = sdkp->unmap_alignment * | 653 | q->limits.discard_alignment = sdkp->unmap_alignment * |
654 | logical_block_size; | 654 | logical_block_size; |