From bac1d4d7af303a41ce0770f49544940f166d3c02 Mon Sep 17 00:00:00 2001 From: Ronnie Sahlberg Date: Sat, 14 Jul 2012 12:31:38 +1000 Subject: [PATCH] We need to allow >uint8_t as xferlen since this is in unit of bytes, not blocks in the libiscsi api --- include/scsi-lowlevel.h | 2 +- lib/scsi-lowlevel.c | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/include/scsi-lowlevel.h b/include/scsi-lowlevel.h index 7599fa4..825386e 100644 --- a/include/scsi-lowlevel.h +++ b/include/scsi-lowlevel.h @@ -655,7 +655,7 @@ EXTERN struct scsi_task *scsi_cdb_read16(uint64_t lba, uint32_t xferlen, int blo EXTERN struct scsi_task *scsi_cdb_write10(uint32_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number); EXTERN struct scsi_task *scsi_cdb_write12(uint32_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number); EXTERN struct scsi_task *scsi_cdb_write16(uint64_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number); -EXTERN struct scsi_task *scsi_cdb_compareandwrite(uint64_t lba, uint8_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number); +EXTERN struct scsi_task *scsi_cdb_compareandwrite(uint64_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number); EXTERN struct scsi_task *scsi_cdb_writeverify10(uint32_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int bytchk, int group_number); EXTERN struct scsi_task *scsi_cdb_writeverify12(uint32_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int bytchk, int group_number); EXTERN struct scsi_task *scsi_cdb_writeverify16(uint64_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int bytchk, int group_number); diff --git a/lib/scsi-lowlevel.c b/lib/scsi-lowlevel.c index ef24331..4ee4f73 100644 --- a/lib/scsi-lowlevel.c +++ b/lib/scsi-lowlevel.c @@ -985,7 +985,7 @@ scsi_cdb_write16(uint64_t lba, uint32_t xferlen, int blocksize, int wrprotect, i * COMPAREANDWRITE */ struct scsi_task * -scsi_cdb_compareandwrite(uint64_t lba, uint8_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number) +scsi_cdb_compareandwrite(uint64_t lba, uint32_t xferlen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group_number) { struct scsi_task *task; @@ -1013,7 +1013,6 @@ scsi_cdb_compareandwrite(uint64_t lba, uint8_t xferlen, int blocksize, int wrpro task->cdb[13] = xferlen/blocksize; task->cdb[14] |= (group_number & 0x1f); - task->cdb_size = 16; if (xferlen != 0) { task->xfer_dir = SCSI_XFER_WRITE;