void test_prout_reserve_ownership_ea(void) { struct scsi_device sd2; if (sd->iscsi_ctx == NULL) { const char *err = "[SKIPPED] This PERSISTENT RESERVE test is " "only supported for iSCSI backends"; logging(LOG_NORMAL, "%s", err); CU_PASS(err); return; } memset(&sd2, 0, sizeof(sd2)); sd2.iscsi_url = sd->iscsi_url; sd2.iscsi_lun = sd->iscsi_lun; sd2.iscsi_ctx = iscsi_context_login(initiatorname2, sd2.iscsi_url, &sd2.iscsi_lun); if (sd2.iscsi_ctx == NULL) { logging(LOG_VERBOSE, "Failed to login to target"); return; } verify_persistent_reserve_ownership(sd, &sd2, SCSI_PERSISTENT_RESERVE_TYPE_EXCLUSIVE_ACCESS, 0); iscsi_destroy_context(sd2.iscsi_ctx); }
void test_prout_reserve_ownership_ea(void) { struct scsi_device *sd2; int ret; if (sd->iscsi_ctx == NULL) { const char *err = "[SKIPPED] This PERSISTENT RESERVE test is " "only supported for iSCSI backends"; logging(LOG_NORMAL, "%s", err); CU_PASS(err); return; } ret = mpath_sd2_get_or_clone(sd, &sd2); CU_ASSERT_EQUAL(ret, 0); if (ret < 0) return; verify_persistent_reserve_ownership(sd, sd2, SCSI_PERSISTENT_RESERVE_TYPE_EXCLUSIVE_ACCESS, 0); mpath_sd2_put(sd2); }