test-tool: allow get_lba_status to return provisioning type

Signed-off-by: Peter Lieven <pl@kamp.de>
This commit is contained in:
Peter Lieven
2014-08-13 17:02:51 +02:00
parent b9cf7e8cd2
commit 8e4e03d85d
3 changed files with 8 additions and 4 deletions

View File

@@ -1909,7 +1909,8 @@ struct scsi_task *get_lba_status_task(struct iscsi_context *iscsi, int lun, uint
return task;
}
int get_lba_status(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t len)
int get_lba_status(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t len,
enum scsi_provisioning_type *provisioning0)
{
struct scsi_task *task;
struct scsi_get_lba_status *lbas = NULL;
@@ -1954,6 +1955,9 @@ int get_lba_status(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t
scsi_free_scsi_task(task);
return -1;
}
if (provisioning0 != NULL) {
*provisioning0 = lbasd->provisioning;
}
scsi_free_scsi_task(task);
logging(LOG_VERBOSE, "[OK] GET_LBA_STATUS returned SUCCESS.");

View File

@@ -240,7 +240,7 @@ struct scsi_task *get_lba_status_task(struct iscsi_context *iscsi, int lun, uint
int compareandwrite(struct iscsi_context *iscsi, int lun, uint64_t lba, unsigned char *data, uint32_t len, int blocksize, int wrprotect, int dpo, int fua, int group_number);
int compareandwrite_invalidfieldincdb(struct iscsi_context *iscsi, int lun, uint64_t lba, unsigned char *data, uint32_t len, int blocksize, int wrprotect, int dpo, int fua, int group_number);
int compareandwrite_miscompare(struct iscsi_context *iscsi, int lun, uint64_t lba, unsigned char *data, uint32_t len, int blocksize, int wrprotect, int dpo, int fua, int group_number);
int get_lba_status(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t len);
int get_lba_status(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t len, enum scsi_provisioning_type *provisioning0);
int get_lba_status_lbaoutofrange(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t len);
int get_lba_status_nomedium(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t len);
int orwrite(struct iscsi_context *iscsi, int lun, uint64_t lba, uint32_t datalen, int blocksize, int wrprotect, int dpo, int fua, int fua_nv, int group, unsigned char *data);

View File

@@ -33,7 +33,7 @@ test_get_lba_status_simple(void)
logging(LOG_VERBOSE, LOG_BLANK_LINE);
logging(LOG_VERBOSE, "Test GET_LBA_STATUS of 1-256 blocks at the start of the LUN");
for (i = 1; i <= 256; i++) {
ret = get_lba_status(iscsic, tgt_lun, 0, 24);
ret = get_lba_status(iscsic, tgt_lun, 0, 24, NULL);
if (ret == -2) {
CU_PASS("[SKIPPED] Target does not support GET_LBA_STATUS. Skipping test");
return;
@@ -44,7 +44,7 @@ test_get_lba_status_simple(void)
logging(LOG_VERBOSE, "Test GET_LBA_STATUS of 1-256 blocks at the end of the LUN");
for (i = 1; i <= 256; i++) {
ret = get_lba_status(iscsic, tgt_lun, num_blocks - i, 24);
ret = get_lba_status(iscsic, tgt_lun, num_blocks - i, 24, NULL);
CU_ASSERT_EQUAL(ret, 0);
}
}