From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=41062 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Ow9WM-0003Mw-95 for qemu-devel@nongnu.org; Thu, 16 Sep 2010 04:08:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Ow9WK-0002OJ-Vu for qemu-devel@nongnu.org; Thu, 16 Sep 2010 04:08:41 -0400 Received: from mx1.redhat.com ([209.132.183.28]:5289) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Ow9WK-0002O9-OO for qemu-devel@nongnu.org; Thu, 16 Sep 2010 04:08:40 -0400 Message-ID: <4C91D09B.1080202@redhat.com> Date: Thu, 16 Sep 2010 10:08:59 +0200 From: Kevin Wolf MIME-Version: 1.0 References: <1284213896-12705-1-git-send-email-aliguori@us.ibm.com> <1284213896-12705-3-git-send-email-aliguori@us.ibm.com> In-Reply-To: <1284213896-12705-3-git-send-email-aliguori@us.ibm.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 2/3] block-nbd: fix use of protocols in backing files and nbd probing List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Juan Quintela , qemu-devel@nongnu.org, Stefan Hajnoczi Am 11.09.2010 16:04, schrieb Anthony Liguori: > The use of protocols in backing_files is currently broken because of some > checks for adjusting relative pathnames. > > Additionally, there's a spurious read when using an nbd protocol that can be > quite destructive when using copy-on-read. Potentially, this can lead to > probing an image file over top of NBD but this is completely wrong as NBD > devices are not growable. > > Signed-off-by: Anthony Liguori > --- > NB: this is absolutely not ideal. A more elegant suggestion would be > appreciated. I don't think NBD cleanly fits the model of a protocol as it > stands today. > > diff --git a/block.c b/block.c > index cd2ee31..a32d5dd 100644 > --- a/block.c > +++ b/block.c > @@ -344,6 +344,12 @@ static int find_image_format(const char *filename, BlockDriver **pdrv) > return ret; > } > > + if (strcmp(bs->drv->protocol_name, "nbd") == 0) { > + drv = bs->drv; > + bdrv_delete(bs); > + goto out; > + } Is nbd really the only protocol that behaves like this? I don't like hardcoding driver names in generic block layer code. Kevin