[SCSI] sd: Unmap discard alignment needs to be converted to bytes
The block layer discard alignment is reported in bytes, not in units of the logical block size. Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> Signed-off-by: James Bottomley <jbottomley@parallels.com>
This commit is contained in:
parent
45d7f0cc58
commit
2a8cfad06e
|
@ -490,7 +490,8 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
|
||||||
unsigned int max_blocks = 0;
|
unsigned int max_blocks = 0;
|
||||||
|
|
||||||
q->limits.discard_zeroes_data = sdkp->lbprz;
|
q->limits.discard_zeroes_data = sdkp->lbprz;
|
||||||
q->limits.discard_alignment = sdkp->unmap_alignment;
|
q->limits.discard_alignment = sdkp->unmap_alignment *
|
||||||
|
logical_block_size;
|
||||||
q->limits.discard_granularity =
|
q->limits.discard_granularity =
|
||||||
max(sdkp->physical_block_size,
|
max(sdkp->physical_block_size,
|
||||||
sdkp->unmap_granularity * logical_block_size);
|
sdkp->unmap_granularity * logical_block_size);
|
||||||
|
|
Loading…
Reference in New Issue