linux/drivers/target/iscsi/iscsi_target_tmr.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*******************************************************************************
 * This file contains the iSCSI Target specific Task Management functions.
 *
 * (c) Copyright 2007-2013 Datera, Inc.
 *
 * Author: Nicholas A. Bellinger <[email protected]>
 *
 ******************************************************************************/

#include <linux/unaligned.h>
#include <scsi/scsi_proto.h>
#include <scsi/iscsi_proto.h>
#include <target/target_core_base.h>
#include <target/target_core_fabric.h>
#include <target/iscsi/iscsi_transport.h>

#include <target/iscsi/iscsi_target_core.h>
#include "iscsi_target_seq_pdu_list.h"
#include "iscsi_target_datain_values.h"
#include "iscsi_target_device.h"
#include "iscsi_target_erl0.h"
#include "iscsi_target_erl1.h"
#include "iscsi_target_erl2.h"
#include "iscsi_target_tmr.h"
#include "iscsi_target_tpg.h"
#include "iscsi_target_util.h"
#include "iscsi_target.h"

u8 iscsit_tmr_abort_task(
	struct iscsit_cmd *cmd,
	unsigned char *buf)
{}

/*
 *	Called from iscsit_handle_task_mgt_cmd().
 */
int iscsit_tmr_task_warm_reset(
	struct iscsit_conn *conn,
	struct iscsi_tmr_req *tmr_req,
	unsigned char *buf)
{}

int iscsit_tmr_task_cold_reset(
	struct iscsit_conn *conn,
	struct iscsi_tmr_req *tmr_req,
	unsigned char *buf)
{}

u8 iscsit_tmr_task_reassign(
	struct iscsit_cmd *cmd,
	unsigned char *buf)
{}

static void iscsit_task_reassign_remove_cmd(
	struct iscsit_cmd *cmd,
	struct iscsi_conn_recovery *cr,
	struct iscsit_session *sess)
{}

static int iscsit_task_reassign_complete_nop_out(
	struct iscsi_tmr_req *tmr_req,
	struct iscsit_conn *conn)
{}

static int iscsit_task_reassign_complete_write(
	struct iscsit_cmd *cmd,
	struct iscsi_tmr_req *tmr_req)
{}

static int iscsit_task_reassign_complete_read(
	struct iscsit_cmd *cmd,
	struct iscsi_tmr_req *tmr_req)
{}

static int iscsit_task_reassign_complete_none(
	struct iscsit_cmd *cmd,
	struct iscsi_tmr_req *tmr_req)
{}

static int iscsit_task_reassign_complete_scsi_cmnd(
	struct iscsi_tmr_req *tmr_req,
	struct iscsit_conn *conn)
{}

static int iscsit_task_reassign_complete(
	struct iscsi_tmr_req *tmr_req,
	struct iscsit_conn *conn)
{}

/*
 *	Handles special after-the-fact actions related to TMRs.
 *	Right now the only one that its really needed for is
 *	connection recovery releated TASK_REASSIGN.
 */
int iscsit_tmr_post_handler(struct iscsit_cmd *cmd, struct iscsit_conn *conn)
{}
EXPORT_SYMBOL();

/*
 *	Nothing to do here, but leave it for good measure. :-)
 */
static int iscsit_task_reassign_prepare_read(
	struct iscsi_tmr_req *tmr_req,
	struct iscsit_conn *conn)
{}

static void iscsit_task_reassign_prepare_unsolicited_dataout(
	struct iscsit_cmd *cmd,
	struct iscsit_conn *conn)
{}

static int iscsit_task_reassign_prepare_write(
	struct iscsi_tmr_req *tmr_req,
	struct iscsit_conn *conn)
{}

/*
 *	Performs sanity checks TMR TASK_REASSIGN's ExpDataSN for
 *	a given struct iscsit_cmd.
 */
int iscsit_check_task_reassign_expdatasn(
	struct iscsi_tmr_req *tmr_req,
	struct iscsit_conn *conn)
{}