summary refs log tree commit diff stats
path: root/storage-daemon/qemu-storage-daemon.c
diff options
context:
space:
mode:
authorStefano Garzarella <sgarzare@redhat.com>2022-05-17 09:10:12 +0200
committerKevin Wolf <kwolf@redhat.com>2022-06-24 17:07:06 +0200
commit66dc5f9606bec7ce029e98a90f209153dfade82e (patch)
treea212505366d9c0318598499686b1fa67801fb77b /storage-daemon/qemu-storage-daemon.c
parentca941c406cc3fb152abdfa490e66aaedd03b869c (diff)
downloadfocaccia-qemu-66dc5f9606bec7ce029e98a90f209153dfade82e.tar.gz
focaccia-qemu-66dc5f9606bec7ce029e98a90f209153dfade82e.zip
block/rbd: report a better error when namespace does not exist
If the namespace does not exist, rbd_create() fails with -ENOENT and
QEMU reports a generic "error rbd create: No such file or directory":

    $ qemu-img create rbd:rbd/namespace/image 1M
    Formatting 'rbd:rbd/namespace/image', fmt=raw size=1048576
    qemu-img: rbd:rbd/namespace/image: error rbd create: No such file or directory

Unfortunately rados_ioctx_set_namespace() does not fail if the namespace
does not exist, so let's use rbd_namespace_exists() in qemu_rbd_connect()
to check if the namespace exists, reporting a more understandable error:

    $ qemu-img create rbd:rbd/namespace/image 1M
    Formatting 'rbd:rbd/namespace/image', fmt=raw size=1048576
    qemu-img: rbd:rbd/namespace/image: namespace 'namespace' does not exist

Reported-by: Tingting Mao <timao@redhat.com>
Reviewed-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Stefano Garzarella <sgarzare@redhat.com>
Message-Id: <20220517071012.6120-1-sgarzare@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'storage-daemon/qemu-storage-daemon.c')
0 files changed, 0 insertions, 0 deletions