On Mon, Jan 02, 2017 at 02:29:11AM +0100, David Disseldorp wrote: > SPC4r37 6.4.1 EXTENDED COPY(LID4) states (also applying to LID1 reqs): > A parameter list length of zero specifies that the copy manager shall > not transfer any data or alter any internal state, and this shall not > be considered an error. > > This behaviour can be tested using the libiscsi ExtendedCopy.ParamHdr > test. > > Signed-off-by: David Disseldorp <ddiss@xxxxxxx> > --- > drivers/target/target_core_xcopy.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/target/target_core_xcopy.c b/drivers/target/target_core_xcopy.c > index 6a4f794..256878a 100644 > --- a/drivers/target/target_core_xcopy.c > +++ b/drivers/target/target_core_xcopy.c > @@ -883,7 +883,10 @@ sense_reason_t target_do_xcopy(struct se_cmd *se_cmd) > return TCM_UNSUPPORTED_SCSI_OPCODE; > } > > - if (se_cmd->data_length < XCOPY_HDR_LEN) { > + if (se_cmd->data_length == 0) { > + target_complete_cmd(se_cmd, SAM_STAT_GOOD); > + return TCM_NO_SENSE; > + } else if (se_cmd->data_length < XCOPY_HDR_LEN) { No need for the else here. Otherwise looks fine: Reviewed-by: Christoph Hellwig <hch@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe target-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html