Am 02.04.2014 14:45, schrieb Paolo Bonzini: > Some targets may return "invalid field" as the ASCQ from WRITE SAME > if they support the command only without the UNMAP field. Recognize > that, and return ENOTSUP just like for "invalid operation code". > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > block/iscsi.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/block/iscsi.c b/block/iscsi.c > index 6d6cd4f..f01c883 100644 > --- a/block/iscsi.c > +++ b/block/iscsi.c > @@ -1012,7 +1012,8 @@ retry: > > if (iTask.status == SCSI_STATUS_CHECK_CONDITION && > iTask.task->sense.key == SCSI_SENSE_ILLEGAL_REQUEST && > - iTask.task->sense.ascq == SCSI_SENSE_ASCQ_INVALID_OPERATION_CODE) { > + (iTask.task->sense.ascq == SCSI_SENSE_ASCQ_INVALID_OPERATION_CODE || > + iTask.task->sense.ascq == SCSI_SENSE_ASCQ_INVALID_FIELD_IN_CDB)) { > /* WRITE SAME is not supported by the target */ > iscsilun->has_write_same = false; > scsi_free_scsi_task(iTask.task);
I also checked that SCSI_SENSE_ASCQ_INVALID_FIELD_IN_CDB is available in libiscsi 1.4.0 already. Reviewed-by: Peter Lieven <p...@kamp.de>