From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=54028 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OwF81-0008HZ-2W for qemu-devel@nongnu.org; Thu, 16 Sep 2010 10:07:58 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OwF7v-0007hc-LJ for qemu-devel@nongnu.org; Thu, 16 Sep 2010 10:07:56 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60638) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OwF7v-0007hC-Bu for qemu-devel@nongnu.org; Thu, 16 Sep 2010 10:07:51 -0400 Message-ID: <4C9224CB.7040508@redhat.com> Date: Thu, 16 Sep 2010 16:08:11 +0200 From: Kevin Wolf MIME-Version: 1.0 Subject: Re: [Qemu-devel] Re: [PATCH 2/3] block-nbd: fix use of protocols in backing files and nbd probing References: <1284213896-12705-1-git-send-email-aliguori@us.ibm.com> <1284213896-12705-3-git-send-email-aliguori@us.ibm.com> <4C91D09B.1080202@redhat.com> <4C9214E7.6090407@linux.vnet.ibm.com> In-Reply-To: <4C9214E7.6090407@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: Anthony Liguori , qemu-devel@nongnu.org, Stefan Hajnoczi , Juan Quintela Am 16.09.2010 15:00, schrieb Anthony Liguori: > On 09/16/2010 03:08 AM, Kevin Wolf wrote: >> 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. >> > > I'll drop this chunk from the patch as using backing_fmt achieves the > same goal. The important hunk is the next one that removes assumptions > that URIs are filenames. Right, but next hunk is broken as Juan already mentioned. You always get a protocol back, so with this patch applied you never resolve relative paths for backing files. Kevin