summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Sanvido <marco@purestorage.com>2012-01-20 15:49:27 -0800
committerNicholas Bellinger <nab@linux-iscsi.org>2012-02-07 06:48:20 +0000
commit7347b5ff7090b2b399b7921a266255cd55bbd78f (patch)
tree3952df49566e07f4cbdbc7aef6b28abadf008dca
parent735703cac08f34a197e1c6331ca9adc8a52d6046 (diff)
target: Fix iblock se_dev_attrib.unmap_granularity
The block layer keeps q->limits.discard_granularity in bytes, but iblock (and the SCSI Block Limits VPD page) keep unmap_granularity in blocks. Report the correct value when exporting block devices by dividing to convert bytes to blocks. Signed-off-by: Roland Dreier <roland@purestorage.com> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r--drivers/target/target_core_iblock.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c
index 628e877381d..d43d5eb5ed2 100644
--- a/drivers/target/target_core_iblock.c
+++ b/drivers/target/target_core_iblock.c
@@ -181,7 +181,7 @@ static struct se_device *iblock_create_virtdevice(
*/
dev->se_sub_dev->se_dev_attrib.max_unmap_block_desc_count = 1;
dev->se_sub_dev->se_dev_attrib.unmap_granularity =
- q->limits.discard_granularity;
+ q->limits.discard_granularity >> 9;
dev->se_sub_dev->se_dev_attrib.unmap_granularity_alignment =
q->limits.discard_alignment;