diff --git a/test-tool/iscsi-support.c b/test-tool/iscsi-support.c index be28660..5db77dd 100644 --- a/test-tool/iscsi-support.c +++ b/test-tool/iscsi-support.c @@ -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."); diff --git a/test-tool/iscsi-support.h b/test-tool/iscsi-support.h index 2611d23..78c41fc 100644 --- a/test-tool/iscsi-support.h +++ b/test-tool/iscsi-support.h @@ -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); diff --git a/test-tool/test_get_lba_status_simple.c b/test-tool/test_get_lba_status_simple.c index 702c61f..3bd9529 100644 --- a/test-tool/test_get_lba_status_simple.c +++ b/test-tool/test_get_lba_status_simple.c @@ -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); } }