Skip to contentSkip to conversation

Fix QEMU failure for disk image on readonly filesystem

PATCH In review Stefan Weil 2 participants 3 messages Aug 21, 2006 – Aug 23, 2006

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Fix QEMU failure for disk image on readonly filesystem

Hello,

qemu fails when the disk image file is writable but on a readonly filesystem (so it is not really writable).

The patch below fixes this. It also declares a local function "static" (maybe this part of the patch is a matter of taste).

Regards,
Stefan

block.c 21 Aug 2006 16:46:21 -0000 renamed from block.c 19 Aug 2006 11:45:59 -0000 1.34 +2 -2
@@ -110,7 +110,7 @@
 }
 
 
-void bdrv_register(BlockDriver *bdrv)
+static void bdrv_register(BlockDriver *bdrv)
 {
     if (!bdrv->bdrv_aio_read) {
         /* add AIO emulation layer */
@@ -359,7 +359,7 @@
     else
         open_flags = flags & ~(BDRV_O_FILE | BDRV_O_SNAPSHOT);
     ret = drv->bdrv_open(bs, filename, open_flags);
-    if (ret == -EACCES && !(flags & BDRV_O_FILE)) {
+    if ((ret == -EACCES || ret == -EROFS) && !(flags & BDRV_O_FILE)) {
         ret = drv->bdrv_open(bs, filename, BDRV_O_RDONLY);
         bs->read_only = 1;
     }
#1 lore raw
Quoted 8 lines · Stefan Weil

Hello,

qemu fails when the disk image file is writable but on a readonly filesystem (so it is not really writable).

The patch below fixes this. It also declares a local function "static" (maybe this part of the patch is a matter of taste).

Are you sure it is needed ? I made a different fix a few days ago.

Regards,

Fabrice.

#2 lore raw
Quoted 8 lines

Are you sure it is needed ? I made a different fix a few days ago.

Regards,

Fabrice.

I wrote my fix before your fix was available.

At least for raw disk images, your fix also works, so at the moment, there is no need for my patch (this should be checked with other kinds of disk images).

Regards,
Stefan