target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 3 Sep 2015 06:30:45 +0000 (06:30 +0000)
committerNicholas Bellinger <nab@linux-iscsi.org>
Fri, 11 Sep 2015 07:32:26 +0000 (00:32 -0700)
commit4416f89b8cfcb794d040fc3b68e5fb159b7d8d02
tree5593bd9e42765628da157c149fae8e7c8ae77dfd
parent8f9b565482c537821588444e09ff732c7d65ed6e
target: Attach EXTENDED_COPY local I/O descriptors to xcopy_pt_sess

This patch is a >= v4.1 regression bug-fix where control CDB
emulation logic in commit 38b57f82 now expects a se_cmd->se_sess
pointer to exist when determining T10-PI support is to be exposed
for initiator host ports.

To address this bug, go ahead and add locally generated se_cmd
descriptors for copy-offload block-copy to it's own stand-alone
se_session nexus, while the parent EXTENDED_COPY se_cmd descriptor
remains associated with it's originating se_cmd->se_sess nexus.

Note a valid se_cmd->se_sess is also required for future support
of WRITE_INSERT and READ_STRIP software emulation when submitting
backend I/O to se_device that exposes T10-PI suport.

Reported-by: Alex Gorbachev <ag@iss-integration.com>
Tested-by: Alex Gorbachev <ag@iss-integration.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Doug Gilbert <dgilbert@interlog.com>
Cc: <stable@vger.kernel.org> # v4.1+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_xcopy.c