From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48566) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YqN8V-0001dn-89 for qemu-devel@nongnu.org; Thu, 07 May 2015 10:50:54 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YqN8R-0006LQ-7f for qemu-devel@nongnu.org; Thu, 07 May 2015 10:50:51 -0400 Message-ID: <554B7BBC.2040508@redhat.com> Date: Thu, 07 May 2015 16:50:36 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <554A4349.10301@redhat.com> <554A459B.1060505@redhat.com> <554A4E2D.4050300@redhat.com> <554B58A8.6000203@redhat.com> <20150507122911.GB4571@noname.redhat.com> <554B5ED3.4030405@redhat.com> <20150507132056.GC4571@noname.redhat.com> <554B6EBB.1010001@redhat.com> <20150507140716.GE4571@noname.redhat.com> <554B73C2.4030908@redhat.com> <20150507143418.GF4571@noname.redhat.com> In-Reply-To: <20150507143418.GF4571@noname.redhat.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [Qemu-block] [PATCH v2 0/3] block: Warn about usage of growing formats over non-growable protocols List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin Wolf Cc: Stefan Hajnoczi , qemu-block@nongnu.org, qemu-devel@nongnu.org, Stefan Hajnoczi , Max Reitz On 07/05/2015 16:34, Kevin Wolf wrote: > Am 07.05.2015 um 16:16 hat Paolo Bonzini geschrieben: >> >> >> On 07/05/2015 16:07, Kevin Wolf wrote: >>> This is not right for two reasons: The first is that this is >>> BlockBackend code >> >> I think it would take effect for the qemu-nbd case though. >=20 > Oh, you want to change the server code rather than the client? Yes. > Wait... Are you saying that NBD sends a (platform specific) errno value > over the network? :-/ Yes. :/ That said, at least the error codes that Linux places in /usr/include/asm/errno-base.h seem to be pretty much standard---at least Windows and most Unices share them---with the exception of EAGAIN. I'll send a patch to NBD to standardize the set of error codes that it sends. > In theory, what error code the NBD server needs to send should be > specified by the NBD protocol. Am I right to assume that it doesn't do > that? Nope. > In any case, I'm not sure whether qemu's internal error code > should change just for NBD. Producing the right error code for the > protocol is the job of nbd_co_receive_request(). Ok, so it shouldn't reach blk_check_request at all. But then, we should aim at making blk_check_request's checks assertions. >>> and it wouldn't even take effect for the qcow2 case >>> where we're writing past EOF only on the protocol layer. The second i= s >>> that -ENOSPC is only for writes and not for reads. >> >> This is right. >> >> Reads in the kernel return 0, but in QEMU we do not want that. The co= de >> currently returns -EIO, but perhaps -EINVAL is a better match. It als= o >> happens to be what Linux returns for discards. >=20 > Perhaps it is, yes. It shouldn't make a difference for guests anyway. > (Unlike -ENOSPC for writes, which would trigger werror=3Denospc! That's > most likely not what we want.) Yes, we want the check duplicated in all BlockBackend users. Most of them already do it, see the work that Markus did last year I think. Paolo