Il 25/11/2013 11:34, Peter Lieven ha scritto:
>>   @@ -1012,6 +1018,14 @@ retry:
>>       }
>>         if (iTask.status != SCSI_STATUS_GOOD) {
>> +        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) {
>> +            /* WRITE SAME is not supported by the target */
>> +            iscsilun->has_write_same = false;
>> +            return -ENOTSUP;
>> +        }
>> +
>>           return -EIO;
>>       }
>>   @@ -1375,6 +1389,7 @@ static int iscsi_open(BlockDriverState *bs,
>> QDict *options, int flags,
>>       }
>>         iscsilun->type = inq->periperal_device_type;
>> +    iscsilun->has_write_same = true;
>>         if ((ret = iscsi_readcapacity_sync(iscsilun)) != 0) {
>>           goto out;
> 
> Maybe the naming has_write_same is misleading. It might be better to call
> it try_write_same or has_write_same_failed with inverse logic.

I was using the same names as block/raw-posix.c.  I'm not sure I like
the other names, but if the maintainers prefer them I'll gladly change them.

Paolo

Reply via email to