|
@@ -450,6 +450,8 @@ int target_xcopy_setup_pt(void)
|
|
|
memset(&xcopy_pt_sess, 0, sizeof(struct se_session));
|
|
|
INIT_LIST_HEAD(&xcopy_pt_sess.sess_list);
|
|
|
INIT_LIST_HEAD(&xcopy_pt_sess.sess_acl_list);
|
|
|
+ INIT_LIST_HEAD(&xcopy_pt_sess.sess_cmd_list);
|
|
|
+ spin_lock_init(&xcopy_pt_sess.sess_cmd_lock);
|
|
|
|
|
|
xcopy_pt_nacl.se_tpg = &xcopy_pt_tpg;
|
|
|
xcopy_pt_nacl.nacl_sess = &xcopy_pt_sess;
|
|
@@ -644,7 +646,7 @@ static int target_xcopy_read_source(
|
|
|
pr_debug("XCOPY: Built READ_16: LBA: %llu Sectors: %u Length: %u\n",
|
|
|
(unsigned long long)src_lba, src_sectors, length);
|
|
|
|
|
|
- transport_init_se_cmd(se_cmd, &xcopy_pt_tfo, NULL, length,
|
|
|
+ transport_init_se_cmd(se_cmd, &xcopy_pt_tfo, &xcopy_pt_sess, length,
|
|
|
DMA_FROM_DEVICE, 0, &xpt_cmd->sense_buffer[0]);
|
|
|
xop->src_pt_cmd = xpt_cmd;
|
|
|
|
|
@@ -704,7 +706,7 @@ static int target_xcopy_write_destination(
|
|
|
pr_debug("XCOPY: Built WRITE_16: LBA: %llu Sectors: %u Length: %u\n",
|
|
|
(unsigned long long)dst_lba, dst_sectors, length);
|
|
|
|
|
|
- transport_init_se_cmd(se_cmd, &xcopy_pt_tfo, NULL, length,
|
|
|
+ transport_init_se_cmd(se_cmd, &xcopy_pt_tfo, &xcopy_pt_sess, length,
|
|
|
DMA_TO_DEVICE, 0, &xpt_cmd->sense_buffer[0]);
|
|
|
xop->dst_pt_cmd = xpt_cmd;
|
|
|
|