]> rtime.felk.cvut.cz Git - lisovros/qemu_apohw.git/commitdiff
iscsi: recognize "invalid field" ASCQ from WRITE SAME command
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 2 Apr 2014 10:12:50 +0000 (12:12 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 3 Apr 2014 11:10:32 +0000 (13:10 +0200)
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".

Reviewed-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
block/iscsi.c

index b490e98c056e6331ee4a8c822bacd5a16ec6860e..2f96a8e037a57f0b5624149bf8a43d8bdcd3a900 100644 (file)
@@ -838,7 +838,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);