Jelajahi Sumber

[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>
Martin K. Petersen 14 tahun lalu
induk
melakukan
2a8cfad06e
1 mengubah file dengan 2 tambahan dan 1 penghapusan
  1. 2 1
      drivers/scsi/sd.c

+ 2 - 1
drivers/scsi/sd.c

@@ -490,7 +490,8 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
 	unsigned int max_blocks = 0;
 
 	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 =
 		max(sdkp->physical_block_size,
 		    sdkp->unmap_granularity * logical_block_size);