Skip to contentSkip to conversation

Clarify error msg when open of backing file fails

PATCH In review Beth Kon 2 participants 2 messages May 8, 2008 – May 9, 2008

lore
Share & tools
lore

Beth Kon

author
#0 lore raw

PATCH 1/1 Clarify error msg when open of backing file fails

This patch clarifies the error message when a problem is encountered opening a backing file. Currently the only message printed in this case is:

" qemu: could not open disk image /path/to/image"

This can be confusing if the real error lies in finding the backing file rather than the primary file.

diffstat output:

 block.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

Signed-off-by: Beth Kon <[email protected]>

---

block.c +0 -0
index bd647a6..c99626f 100644
@@ -416,8 +416,11 @@ int bdrv_open2(BlockDriverState *bs, const char

*filename,

         }
         path_combine(backing_filename, sizeof(backing_filename),
                      filename, bs->backing_file);

- if (bdrv_open(bs->backing_hd, backing_filename, 0) < 0)
- goto fail;
+ if (bdrv_open(bs->backing_hd, backing_filename, 0) < 0) {
+ fprintf(stderr, "qemu: could not open backing file %s\n",
+ backing_filename);
+ goto fail;
+ }

     }
 
     /* call the change callback */
Signature · 4 lines
Elizabeth Kon (Beth)
IBM Linux Technology Center
Open Hypervisor Team
email: [email protected]
#1 lore raw
Quoted 8 lines · Beth Kon

This patch clarifies the error message when a problem is encountered opening a backing file. Currently the only message printed in this case is:

" qemu: could not open disk image /path/to/image"

This can be confusing if the real error lies in finding the backing file rather than the primary file.

While I agree this is very confusing (and backing file not found is not the only case), I don't think the current patch is correct. It will print the error message on the console, even if the action causing the problem is not done from there (from the monitor for example).

I think we should rework the error handling in in block* to correctly display errors on the console or on the monitor.

One solution could be to define negative constants for each of the errors, and propagate it back to the original caller. That way it can display the error message at the correct place.

I haven't thinked a lot about that, better solutions may exist.

Quoted 37 lines

diffstat output:

 block.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

Signed-off-by: Beth Kon <[email protected]>

---

block.c +5 -2
index bd647a6..c99626f 100644
@@ -416,8 +416,11 @@ int bdrv_open2(BlockDriverState *bs, const char
 *filename, 
         }
         path_combine(backing_filename, sizeof(backing_filename),
                      filename, bs->backing_file);
-        if (bdrv_open(bs->backing_hd, backing_filename, 0) < 0)
-            goto fail;
+        if (bdrv_open(bs->backing_hd, backing_filename, 0) < 0) {
+            fprintf(stderr, "qemu: could not open backing file %s\n",
+                                             backing_filename);
+            goto fail; 
+        }    
     }
 
     /* call the change callback */
Signature · 4 lines
Elizabeth Kon (Beth)
IBM Linux Technology Center
Open Hypervisor Team
email: [email protected]
Signature · 4 lines
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   [email protected]         | [email protected]
   `-    people.debian.org/~aurel32 | www.aurel32.net