|
From: | Gerd Hoffmann |
Subject: | Re: [Qemu-devel] [sneak preview] major scsi overhaul |
Date: | Thu, 26 Nov 2009 09:25:52 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.4pre) Gecko/20091014 Fedora/3.0-2.8.b4.fc11 Lightning/1.0pre Thunderbird/3.0b4 |
Hi,
Answering large requests with "Illegal request, Invalid field in CDB" doesn't makes linux try smaller requests, instead it reports I/O errors to the syslog. Hmm.Can't we just put residuals to good use here? Ie finish up the request up to the size we can handle, and return the original request with the transfer size set correctly.
I'll try.
Should be straightforward to implement, one would assume.
The infrastructure and the HBAs have to handle that already. It frequently happens with MODE SENSE for example (guest passing a 256 byte buffer and we have less data to fill in). So it should be easy.
And we could probably encapsulate it entirely within the bdrv as don't actually need to expose those limits when the block driver layer is handling it correctly.
Hmm, I don't think so. SG_IO just returns EINVAL. cheers, Gerd
[Prev in Thread] | Current Thread | [Next in Thread] |