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<aligu...@us.ibm.com>
---
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.

Regards,

Anthony Liguori

Kevin


Reply via email to