]> Pileus Git - ~andy/linux/commitdiff
target: Make spc_get_write_same_sectors return sector_t
authorNicholas Bellinger <nab@linux-iscsi.org>
Wed, 28 Nov 2012 03:07:52 +0000 (19:07 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 28 Nov 2012 06:49:25 +0000 (22:49 -0800)
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>
drivers/target/target_core_iblock.c
drivers/target/target_core_sbc.c
include/target/target_core_backend.h

index 34f258b4d37f0f17c3040fc084c231050b2baf90..b526d23dcd4f178be3fd06b4fdcc273a0ba78a4f 100644 (file)
@@ -481,7 +481,7 @@ iblock_execute_write_same(struct se_cmd *cmd)
        struct bio *bio;
        struct bio_list list;
        sector_t block_lba = cmd->t_task_lba;
-       unsigned int sectors = spc_get_write_same_sectors(cmd);
+       sector_t sectors = spc_get_write_same_sectors(cmd);
 
        sg = &cmd->t_data_sg[0];
 
index 94fd004ea3fcc982f2294bdf8c02abbf2b6726d6..26a6d183ccb1c3f1f5e9eb6ec213d150a7ebfa6b 100644 (file)
@@ -107,7 +107,7 @@ sbc_emulate_readcapacity_16(struct se_cmd *cmd)
        return 0;
 }
 
-int spc_get_write_same_sectors(struct se_cmd *cmd)
+sector_t spc_get_write_same_sectors(struct se_cmd *cmd)
 {
        u32 num_blocks;
 
index 3393ab10766c628d41abb6c5a5e9e6ec9c7e4cf6..507910992c5987a2c8108e77f04ca9c501de5c78 100644 (file)
@@ -52,7 +52,7 @@ void  target_complete_cmd(struct se_cmd *, u8);
 
 sense_reason_t spc_parse_cdb(struct se_cmd *cmd, unsigned int *size);
 sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd);
-int    spc_get_write_same_sectors(struct se_cmd *cmd);
+sector_t       spc_get_write_same_sectors(struct se_cmd *cmd);
 
 sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops);
 u32    sbc_get_device_rev(struct se_device *dev);