Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e6a2573f authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Nicholas Bellinger
Browse files

target: remove transport_generic_remove



All callers that never have the session_reinstatement flag set can trivially
be converted to transport_put_cmd.  Opencode the session reinstatement code
in transport_generic_free_cmd, which was the only caller ever asking for it.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 4911e3cc
Loading
Loading
Loading
Loading
+15 −29
Original line number Diff line number Diff line
@@ -86,8 +86,6 @@ static u32 transport_allocate_tasks(struct se_cmd *cmd,
		enum dma_data_direction data_direction,
		struct scatterlist *sgl, unsigned int nents);
static int transport_generic_get_mem(struct se_cmd *cmd);
static int transport_generic_remove(struct se_cmd *cmd,
		int session_reinstatement);
static bool transport_put_cmd(struct se_cmd *cmd);
static void transport_remove_cmd_from_queue(struct se_cmd *cmd,
		struct se_queue_obj *qobj);
@@ -599,7 +597,7 @@ void transport_cmd_finish_abort(struct se_cmd *cmd, int remove)
		return;
	if (remove) {
		transport_remove_cmd_from_queue(cmd, &cmd->se_dev->dev_queue_obj);
		transport_generic_remove(cmd, 0);
		transport_put_cmd(cmd);
	}
}

@@ -610,7 +608,7 @@ void transport_cmd_finish_abort_tmr(struct se_cmd *cmd)
	if (transport_cmd_check_stop_to_fabric(cmd))
		return;

	transport_generic_remove(cmd, 0);
	transport_put_cmd(cmd);
}

static void transport_add_cmd_to_queue(
@@ -2072,7 +2070,7 @@ static void transport_generic_request_timeout(struct se_cmd *cmd)
	unsigned long flags;

	/*
	 * Reset cmd->t_se_count to allow transport_generic_remove()
	 * Reset cmd->t_se_count to allow transport_put_cmd()
	 * to allow last call to free memory resources.
	 */
	spin_lock_irqsave(&cmd->t_state_lock, flags);
@@ -2083,7 +2081,7 @@ static void transport_generic_request_timeout(struct se_cmd *cmd)
	}
	spin_unlock_irqrestore(&cmd->t_state_lock, flags);

	transport_generic_remove(cmd, 0);
	transport_put_cmd(cmd);
}

static inline u32 transport_lba_21(unsigned char *cdb)
@@ -3772,24 +3770,6 @@ out_busy:
	return false;
}

static int
transport_generic_remove(struct se_cmd *cmd, int session_reinstatement)
{
	unsigned long flags;

	if (!transport_put_cmd(cmd)) {
		if (session_reinstatement) {
			spin_lock_irqsave(&cmd->t_state_lock, flags);
			transport_all_task_dev_remove_state(cmd);
			spin_unlock_irqrestore(&cmd->t_state_lock,
					flags);
		}
		return 1;
	}

	return 0;
}

/*
 * transport_generic_map_mem_to_cmd - Use fabric-alloced pages instead of
 * allocating in the core.
@@ -4379,7 +4359,13 @@ void transport_generic_free_cmd(

		transport_free_dev_tasks(cmd);

		transport_generic_remove(cmd, session_reinstatement);
		if (!transport_put_cmd(cmd) && session_reinstatement) {
			unsigned long flags;

			spin_lock_irqsave(&cmd->t_state_lock, flags);
			transport_all_task_dev_remove_state(cmd);
			spin_unlock_irqrestore(&cmd->t_state_lock, flags);
		}
	}
}
EXPORT_SYMBOL(transport_generic_free_cmd);
@@ -5066,7 +5052,7 @@ static void transport_processing_shutdown(struct se_device *dev)
				transport_lun_remove_cmd(cmd);

				if (transport_cmd_check_stop(cmd, 1, 0))
					transport_generic_remove(cmd, 0);
					transport_put_cmd(cmd);
			}

			spin_lock_irqsave(&dev->execute_task_lock, flags);
@@ -5094,7 +5080,7 @@ static void transport_processing_shutdown(struct se_device *dev)
			transport_lun_remove_cmd(cmd);

			if (transport_cmd_check_stop(cmd, 1, 0))
				transport_generic_remove(cmd, 0);
				transport_put_cmd(cmd);
		}

		spin_lock_irqsave(&dev->execute_task_lock, flags);
@@ -5117,7 +5103,7 @@ static void transport_processing_shutdown(struct se_device *dev)
		} else {
			transport_lun_remove_cmd(cmd);
			if (transport_cmd_check_stop(cmd, 1, 0))
				transport_generic_remove(cmd, 0);
				transport_put_cmd(cmd);
		}
	}
}
@@ -5192,7 +5178,7 @@ get_cmd:
			transport_generic_complete_ok(cmd);
			break;
		case TRANSPORT_REMOVE:
			transport_generic_remove(cmd, 0);
			transport_put_cmd(cmd);
			break;
		case TRANSPORT_FREE_CMD_INTR:
			transport_generic_free_cmd(cmd, 0, 0);