]> git.ipfire.org Git - thirdparty/qemu.git/commit - meson.build
block/rbd: report a better error when namespace does not exist
authorStefano Garzarella <sgarzare@redhat.com>
Tue, 17 May 2022 07:10:12 +0000 (09:10 +0200)
committerKevin Wolf <kwolf@redhat.com>
Fri, 24 Jun 2022 15:07:06 +0000 (17:07 +0200)
commit66dc5f9606bec7ce029e98a90f209153dfade82e
treea212505366d9c0318598499686b1fa67801fb77b
parentca941c406cc3fb152abdfa490e66aaedd03b869c
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>
block/rbd.c
meson.build