Skip to content
Snippets Groups Projects
  • Daniel P. Berrangé's avatar
    b18a24a9
    block/file: switch to use qemu_open/qemu_create for improved errors · b18a24a9
    Daniel P. Berrangé authored
    
    Currently at startup if using cache=none on a filesystem lacking
    O_DIRECT such as tmpfs, at startup QEMU prints
    
    qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: file system may not support O_DIRECT
    qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: Could not open '/tmp/foo.img': Invalid argument
    
    while at QMP level the hint is missing, so QEMU reports just
    
      "error": {
          "class": "GenericError",
          "desc": "Could not open '/tmp/foo.img': Invalid argument"
      }
    
    which is close to useless for the end user trying to figure out what
    they did wrong.
    
    With this change at startup QEMU prints
    
    qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: Unable to open '/tmp/foo.img': filesystem does not support O_DIRECT
    
    while at the QMP level QEMU reports a massively more informative
    
      "error": {
         "class": "GenericError",
         "desc": "Unable to open '/tmp/foo.img': filesystem does not support O_DIRECT"
      }
    
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>
    b18a24a9
    History
    block/file: switch to use qemu_open/qemu_create for improved errors
    Daniel P. Berrangé authored
    
    Currently at startup if using cache=none on a filesystem lacking
    O_DIRECT such as tmpfs, at startup QEMU prints
    
    qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: file system may not support O_DIRECT
    qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: Could not open '/tmp/foo.img': Invalid argument
    
    while at QMP level the hint is missing, so QEMU reports just
    
      "error": {
          "class": "GenericError",
          "desc": "Could not open '/tmp/foo.img': Invalid argument"
      }
    
    which is close to useless for the end user trying to figure out what
    they did wrong.
    
    With this change at startup QEMU prints
    
    qemu-system-x86_64: -drive file=/tmp/foo.img,cache=none: Unable to open '/tmp/foo.img': filesystem does not support O_DIRECT
    
    while at the QMP level QEMU reports a massively more informative
    
      "error": {
         "class": "GenericError",
         "desc": "Unable to open '/tmp/foo.img': filesystem does not support O_DIRECT"
      }
    
    Reviewed-by: default avatarEric Blake <eblake@redhat.com>
    Reviewed-by: default avatarPhilippe Mathieu-Daudé <philmd@redhat.com>
    Reviewed-by: default avatarMarkus Armbruster <armbru@redhat.com>
    Signed-off-by: default avatarDaniel P. Berrangé <berrange@redhat.com>