scsi-disk: fix the mode data length field returned by the MODE SENSE command

The MODE DATA LENGTH field indicates the length in bytes of the following
data that is available to be transferred. The mode data length does not include
the number of bytes in the MODE DATA LENGTH field.

Signed-off-by: Bernhard Kohl <bernhard.kohl@nsn.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
Bernhard Kohl 2010-08-31 11:22:29 +02:00 committed by Kevin Wolf
parent 7d631a116a
commit 78e70c3061

View File

@ -653,7 +653,7 @@ static int scsi_disk_emulate_mode_sense(SCSIRequest *req, uint8_t *outbuf)
}
buflen = p - outbuf;
outbuf[0] = buflen - 4;
outbuf[0] = buflen - 1;
if (buflen > req->cmd.xfer)
buflen = req->cmd.xfer;
return buflen;