mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-18 09:44:18 +08:00
scsi: target/core: Simplify LUN initialization in XCOPY implementation
Other than removing a few pr_debug() statements, this patch does not change any functionality. Cc: Mike Christie <mchristi@redhat.com> Cc: Christoph Hellwig <hch@lst.de> Cc: Hannes Reinecke <hare@suse.com> Cc: Nicholas Bellinger <nab@linux-iscsi.org> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
82b76b4476
commit
0f57cf5ce7
@ -513,53 +513,16 @@ static void target_xcopy_setup_pt_port(
|
|||||||
struct se_cmd *ec_cmd = xop->xop_se_cmd;
|
struct se_cmd *ec_cmd = xop->xop_se_cmd;
|
||||||
struct se_cmd *pt_cmd = &xpt_cmd->se_cmd;
|
struct se_cmd *pt_cmd = &xpt_cmd->se_cmd;
|
||||||
|
|
||||||
if (xop->op_origin == XCOL_SOURCE_RECV_OP) {
|
if (!remote_port) {
|
||||||
/*
|
pt_cmd->se_lun = ec_cmd->se_lun;
|
||||||
* Honor destination port reservations for X-COPY PUSH emulation
|
pt_cmd->se_dev = ec_cmd->se_dev;
|
||||||
* when CDB is received on local source port, and READs blocks to
|
|
||||||
* WRITE on remote destination port.
|
|
||||||
*/
|
|
||||||
if (!remote_port) {
|
|
||||||
pt_cmd->se_lun = ec_cmd->se_lun;
|
|
||||||
pt_cmd->se_dev = ec_cmd->se_dev;
|
|
||||||
|
|
||||||
pr_debug("Honoring local SRC port from ec_cmd->se_dev:"
|
|
||||||
" %p\n", pt_cmd->se_dev);
|
|
||||||
pt_cmd->se_lun = ec_cmd->se_lun;
|
|
||||||
pr_debug("Honoring local SRC port from ec_cmd->se_lun: %p\n",
|
|
||||||
pt_cmd->se_lun);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
/*
|
|
||||||
* Honor source port reservation for X-COPY PULL emulation
|
|
||||||
* when CDB is received on local desintation port, and READs
|
|
||||||
* blocks from the remote source port to WRITE on local
|
|
||||||
* destination port.
|
|
||||||
*/
|
|
||||||
if (!remote_port) {
|
|
||||||
pt_cmd->se_lun = ec_cmd->se_lun;
|
|
||||||
pt_cmd->se_dev = ec_cmd->se_dev;
|
|
||||||
|
|
||||||
pr_debug("Honoring local DST port from ec_cmd->se_dev:"
|
|
||||||
" %p\n", pt_cmd->se_dev);
|
|
||||||
pt_cmd->se_lun = ec_cmd->se_lun;
|
|
||||||
pr_debug("Honoring local DST port from ec_cmd->se_lun: %p\n",
|
|
||||||
pt_cmd->se_lun);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void target_xcopy_init_pt_lun(struct se_device *se_dev,
|
static void target_xcopy_init_pt_lun(struct se_device *se_dev,
|
||||||
struct se_cmd *pt_cmd, bool remote_port)
|
struct se_cmd *pt_cmd, bool remote_port)
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
* Don't allocate + init an pt_cmd->se_lun if honoring local port for
|
|
||||||
* reservations. The pt_cmd->se_lun pointer will be setup from within
|
|
||||||
* target_xcopy_setup_pt_port()
|
|
||||||
*/
|
|
||||||
if (remote_port) {
|
if (remote_port) {
|
||||||
pr_debug("Setup emulated se_dev: %p from se_dev\n",
|
|
||||||
pt_cmd->se_dev);
|
|
||||||
pt_cmd->se_lun = &se_dev->xcopy_lun;
|
pt_cmd->se_lun = &se_dev->xcopy_lun;
|
||||||
pt_cmd->se_dev = se_dev;
|
pt_cmd->se_dev = se_dev;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user