diff options
author | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-11-27 22:07:52 -0500 |
---|---|---|
committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-11-28 01:49:25 -0500 |
commit | ffe0067544f93c0e71c793d7f17240486d091a3c (patch) | |
tree | d5008fdf846ed6f6575e65abe4c7bf7a267da2f1 | |
parent | 13f6a91479b06133eb99f1f43be02608eb867313 (diff) |
target: Make spc_get_write_same_sectors return sector_t
We already expect TFO->get_blocks() to return sector_t for zero value case
when doing WRITE_SAME to the end of the backend device, so go ahead and return
sector_t from spc_get_write_same_sectors() to handle this case properly.
Also, update the single iblock_execute_write_same() caller of this code.
Cc: Christoph Hellwig <hch@lst.de>
Cc: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
-rw-r--r-- | drivers/target/target_core_iblock.c | 2 | ||||
-rw-r--r-- | drivers/target/target_core_sbc.c | 2 | ||||
-rw-r--r-- | include/target/target_core_backend.h | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/drivers/target/target_core_iblock.c b/drivers/target/target_core_iblock.c index 34f258b4d37f..b526d23dcd4f 100644 --- a/drivers/target/target_core_iblock.c +++ b/drivers/target/target_core_iblock.c | |||
@@ -481,7 +481,7 @@ iblock_execute_write_same(struct se_cmd *cmd) | |||
481 | struct bio *bio; | 481 | struct bio *bio; |
482 | struct bio_list list; | 482 | struct bio_list list; |
483 | sector_t block_lba = cmd->t_task_lba; | 483 | sector_t block_lba = cmd->t_task_lba; |
484 | unsigned int sectors = spc_get_write_same_sectors(cmd); | 484 | sector_t sectors = spc_get_write_same_sectors(cmd); |
485 | 485 | ||
486 | sg = &cmd->t_data_sg[0]; | 486 | sg = &cmd->t_data_sg[0]; |
487 | 487 | ||
diff --git a/drivers/target/target_core_sbc.c b/drivers/target/target_core_sbc.c index 94fd004ea3fc..26a6d183ccb1 100644 --- a/drivers/target/target_core_sbc.c +++ b/drivers/target/target_core_sbc.c | |||
@@ -107,7 +107,7 @@ sbc_emulate_readcapacity_16(struct se_cmd *cmd) | |||
107 | return 0; | 107 | return 0; |
108 | } | 108 | } |
109 | 109 | ||
110 | int spc_get_write_same_sectors(struct se_cmd *cmd) | 110 | sector_t spc_get_write_same_sectors(struct se_cmd *cmd) |
111 | { | 111 | { |
112 | u32 num_blocks; | 112 | u32 num_blocks; |
113 | 113 | ||
diff --git a/include/target/target_core_backend.h b/include/target/target_core_backend.h index 3393ab10766c..507910992c59 100644 --- a/include/target/target_core_backend.h +++ b/include/target/target_core_backend.h | |||
@@ -52,7 +52,7 @@ void target_complete_cmd(struct se_cmd *, u8); | |||
52 | 52 | ||
53 | sense_reason_t spc_parse_cdb(struct se_cmd *cmd, unsigned int *size); | 53 | sense_reason_t spc_parse_cdb(struct se_cmd *cmd, unsigned int *size); |
54 | sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd); | 54 | sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd); |
55 | int spc_get_write_same_sectors(struct se_cmd *cmd); | 55 | sector_t spc_get_write_same_sectors(struct se_cmd *cmd); |
56 | 56 | ||
57 | sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops); | 57 | sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops); |
58 | u32 sbc_get_device_rev(struct se_device *dev); | 58 | u32 sbc_get_device_rev(struct se_device *dev); |