Commit a3738d90 authored by Daniel Verkamp's avatar Daniel Verkamp
Browse files

scsi: make spdk_scsi_dev definition private



Change-Id: I62b36a22e11e845045f190886ae00aa644f96ec6
Signed-off-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 26860671
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -170,18 +170,7 @@ struct spdk_scsi_port {
	char			name[SPDK_SCSI_PORT_MAX_NAME_LENGTH];
};

struct spdk_scsi_dev {
	int			id;
	int			is_allocated;

	char			name[SPDK_SCSI_DEV_MAX_NAME];

	int			maxlun;
	struct spdk_scsi_lun	*lun[SPDK_SCSI_DEV_MAX_LUN];

	int			num_ports;
	struct spdk_scsi_port	port[SPDK_SCSI_DEV_MAX_PORTS];
};
struct spdk_scsi_dev;

/**
 * \brief Represents a SCSI LUN.
@@ -197,6 +186,10 @@ struct spdk_scsi_lun;
int spdk_scsi_lun_get_id(const struct spdk_scsi_lun *lun);
const char *spdk_scsi_lun_get_name(const struct spdk_scsi_lun *lun);

const char *spdk_scsi_dev_get_name(const struct spdk_scsi_dev *dev);
int spdk_scsi_dev_get_id(const struct spdk_scsi_dev *dev);
int spdk_scsi_dev_get_max_lun(const struct spdk_scsi_dev *dev);
struct spdk_scsi_lun *spdk_scsi_dev_get_lun(struct spdk_scsi_dev *dev, int lun_id);
void spdk_scsi_dev_destruct(struct spdk_scsi_dev *dev);
void spdk_scsi_dev_queue_mgmt_task(struct spdk_scsi_dev *dev, struct spdk_scsi_task *task);
void spdk_scsi_dev_queue_task(struct spdk_scsi_dev *dev, struct spdk_scsi_task *task);
+2 −8
Original line number Diff line number Diff line
@@ -2961,11 +2961,7 @@ spdk_iscsi_op_scsi(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu)
	spdk_iscsi_task_associate_pdu(task, pdu);
	lun_i = spdk_islun2lun(lun);
	dev = conn->dev;
	if (lun_i < dev->maxlun && lun_i < SPDK_SCSI_DEV_MAX_LUN) {
		task->scsi.lun = dev->lun[lun_i];
	} else {
		task->scsi.lun = NULL;
	}
	task->scsi.lun = spdk_scsi_dev_get_lun(dev, lun_i);

	if ((R_bit != 0) && (W_bit != 0)) {
		SPDK_ERRLOG("Bidirectional CDB is not supported\n");
@@ -3283,9 +3279,7 @@ spdk_iscsi_op_task(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pdu)
	task->scsi.target_port = conn->target_port;
	task->scsi.initiator_port = conn->initiator_port;
	task->scsi.id = task_tag;
	if (lun_i < dev->maxlun && lun_i < SPDK_SCSI_DEV_MAX_LUN) {
		task->scsi.lun = dev->lun[lun_i];
	}
	task->scsi.lun = spdk_scsi_dev_get_lun(dev, lun_i);

	switch (function) {
	/* abort task identified by Referenced Task Tag field */
+8 −5
Original line number Diff line number Diff line
@@ -299,7 +299,7 @@ spdk_rpc_get_target_nodes(struct spdk_jsonrpc_server_conn *conn,
	struct spdk_iscsi_globals *iscsi = &g_spdk_iscsi;
	struct spdk_json_write_ctx *w;
	size_t tgt_idx;
	int i;
	int i, maxlun;

	if (params != NULL) {
		spdk_jsonrpc_send_error_response(conn, id, SPDK_JSONRPC_ERROR_INVALID_PARAMS,
@@ -345,13 +345,16 @@ spdk_rpc_get_target_nodes(struct spdk_jsonrpc_server_conn *conn,

		spdk_json_write_name(w, "luns");
		spdk_json_write_array_begin(w);
		for (i = 0; i < tgtnode->dev->maxlun; i++) {
			if (tgtnode->dev->lun[i]) {
		maxlun = spdk_scsi_dev_get_max_lun(tgtnode->dev);
		for (i = 0; i < maxlun; i++) {
			struct spdk_scsi_lun *lun = spdk_scsi_dev_get_lun(tgtnode->dev, i);

			if (lun) {
				spdk_json_write_object_begin(w);
				spdk_json_write_name(w, "name");
				spdk_json_write_string(w, spdk_scsi_lun_get_name(tgtnode->dev->lun[i]));
				spdk_json_write_string(w, spdk_scsi_lun_get_name(lun));
				spdk_json_write_name(w, "id");
				spdk_json_write_int32(w, spdk_scsi_lun_get_id(tgtnode->dev->lun[i]));
				spdk_json_write_int32(w, spdk_scsi_lun_get_id(lun));
				spdk_json_write_object_end(w);
			}
		}
+11 −5
Original line number Diff line number Diff line
@@ -234,6 +234,7 @@ static void
spdk_iscsi_config_dump_target_nodes(FILE *fp)
{
	int t = 0, l = 0, m = 0;
	int maxlun;
	struct spdk_scsi_dev *dev = NULL;
	struct spdk_iscsi_tgt_node *target = NULL;

@@ -250,7 +251,7 @@ spdk_iscsi_config_dump_target_nodes(FILE *fp)
		if (NULL == dev) continue;

		idx = target->num;
		fprintf(fp, TARGET_NODE_TMPL, idx, idx, target->name, dev->name);
		fprintf(fp, TARGET_NODE_TMPL, idx, idx, target->name, spdk_scsi_dev_get_name(dev));

		for (m = 0; m < target->maxmap; m++) {
			if (NULL == target->map[m].pg) continue;
@@ -285,12 +286,17 @@ spdk_iscsi_config_dump_target_nodes(FILE *fp)
		fprintf(fp, TARGET_NODE_AUTH_TMPL,
			authmethod, authgroup, usedigest);

		for (l = 0; l < dev->maxlun; l++) {
			if (NULL == dev->lun[l]) continue;
		maxlun = spdk_scsi_dev_get_max_lun(dev);
		for (l = 0; l < maxlun; l++) {
			struct spdk_scsi_lun *lun = spdk_scsi_dev_get_lun(dev, l);

			if (!lun) {
				continue;
			}

			fprintf(fp, TARGET_NODE_LUN_TMPL,
				spdk_scsi_lun_get_id(dev->lun[l]),
				spdk_scsi_lun_get_name(dev->lun[l]));
				spdk_scsi_lun_get_id(lun),
				spdk_scsi_lun_get_name(lun));
		}

		fprintf(fp, TARGET_NODE_QD_TMPL,
+7 −4
Original line number Diff line number Diff line
@@ -1067,11 +1067,14 @@ int
spdk_iscsi_tgt_node_cleanup_luns(struct spdk_iscsi_conn *conn,
				 struct spdk_iscsi_tgt_node *target)
{
	int i;
	int i, maxlun;
	struct spdk_iscsi_task *task;

	for (i = 0; i < target->dev->maxlun; i++) {
		if (!target->dev->lun[i])
	maxlun = spdk_scsi_dev_get_max_lun(target->dev);
	for (i = 0; i < maxlun; i++) {
		struct spdk_scsi_lun *lun = spdk_scsi_dev_get_lun(target->dev, i);

		if (!lun)
			continue;

		/* we create a fake management task per LUN to cleanup */
@@ -1084,7 +1087,7 @@ spdk_iscsi_tgt_node_cleanup_luns(struct spdk_iscsi_conn *conn,
		task->scsi.type = SPDK_SCSI_TASK_TYPE_MANAGE;
		task->scsi.target_port = conn->target_port;
		task->scsi.initiator_port = conn->initiator_port;
		task->scsi.lun = target->dev->lun[i];
		task->scsi.lun = lun;
		task->scsi.function = SPDK_SCSI_TASK_FUNC_LUN_RESET;

		task->scsi.cb_event = spdk_event_allocate(spdk_env_get_current_core(),
Loading