qemu/block
Stefano Garzarella 66dc5f9606 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>
2022-06-24 17:07:06 +02:00
..
export libvduse: Add support for reconnecting 2022-06-24 17:07:06 +02:00
monitor block: improve block_dirty_bitmap_merge(): don't allocate extra bitmap 2022-06-24 17:07:06 +02:00
accounting.c block/accounting: Use lock guard macros 2020-12-11 17:52:39 +01:00
aio_task.c block/aio_task: assert max_busy_tasks is greater than 0 2021-10-05 18:56:41 +02:00
amend.c block/amend: Keep strong reference to BDS 2022-03-04 18:18:26 +01:00
backup.c block: simplify handling of try to merge different sized bitmaps 2022-06-24 17:07:06 +02:00
blkdebug.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
blklogwrites.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
blkreplay.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
blkverify.c Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
block-backend.c block: Support passing NULL ops to blk_set_dev_ops() 2022-06-24 17:07:06 +02:00
block-copy.c target-arm queue: 2022-03-08 15:26:10 +00:00
block-gen.h scripts: add block-coroutine-wrapper.py 2020-10-05 10:59:06 +01:00
bochs.c block: use int64_t instead of uint64_t in driver read handlers 2021-09-29 13:46:31 -05:00
cloop.c block: use int64_t instead of uint64_t in driver read handlers 2021-09-29 13:46:31 -05:00
commit.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
copy-before-write.c block: copy-before-write: realize snapshot-access API 2022-03-07 09:33:31 +01:00
copy-before-write.h block/copy-before-write.h: global state API + assertions 2022-03-04 18:18:25 +01:00
copy-on-read.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
copy-on-read.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
coroutines.h Clean up header guards that don't match their file name 2022-05-11 16:49:06 +02:00
create.c block_int-common.h: assertions in the callers of BlockDriver function pointers 2022-03-04 18:18:25 +01:00
crypto.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
crypto.h nomaintainer: Fix Lesser GPL version number 2020-11-15 17:04:40 +01:00
curl.c block/curl.c: Check error return from curl_easy_setopt() 2022-03-07 09:19:20 +01:00
dirty-bitmap.c block: simplify handling of try to merge different sized bitmaps 2022-06-24 17:07:06 +02:00
dmg-bz2.c
dmg-lzfse.c block: Remove unused include 2020-11-09 15:44:21 +01:00
dmg.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
dmg.h
file-posix.c block: move fcntl_setfl() 2022-05-03 15:17:53 +04:00
file-win32.c block: use int64_t instead of uint64_t in driver write handlers 2021-09-29 13:46:31 -05:00
filter-compress.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
gluster.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
io_uring.c Use io_uring_register_ring_fd() to skip fd operations 2022-06-15 14:50:41 +01:00
io.c block: drop unused bdrv_co_drain() API 2022-06-24 17:07:06 +02:00
iscsi-opts.c modules: add block module annotations 2021-07-09 18:20:27 +02:00
iscsi.c include: move qemu_get_vm_name() to sysemu.h 2022-04-06 14:31:43 +02:00
linux-aio.c linux-aio: explain why max batch is checked in laio_io_unplug() 2022-06-15 16:43:42 +01:00
meson.build block: introduce snapshot-access block driver 2022-03-07 09:33:31 +01:00
mirror.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
nbd.c nbd: document what is protected by the CoMutexes 2022-04-26 13:16:42 -05:00
nfs.c aio-posix: split poll check from ready handler 2022-01-12 17:09:39 +00:00
null.c block: use int64_t instead of uint64_t in driver write handlers 2021-09-29 13:46:31 -05:00
nvme.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
parallels-ext.c block: Fix misleading hexadecimal format 2022-03-24 10:38:42 +00:00
parallels.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
parallels.h parallels: support bitmap extension for read-only mode 2021-03-08 14:56:55 +01:00
preallocate.c block: fix preallocate filter: don't do unaligned preallocate requests 2022-03-07 09:19:20 +01:00
progress_meter.c progressmeter: protect with a mutex 2021-06-25 14:24:24 +03:00
qapi-sysemu.c block: add 'force' parameter to 'blockdev-change-medium' command 2022-04-25 12:02:36 +02:00
qapi.c block: use GDateTime for formatting timestamp when dumping snapshot info 2021-06-14 13:28:50 +01:00
qcow2-bitmap.c nbd patches for 2021-03-09 2021-03-11 13:57:08 +00:00
qcow2-cache.c Replace qemu_real_host_page variables with inlined functions 2022-04-06 10:50:38 +02:00
qcow2-cluster.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qcow2-refcount.c qcow2: Add errp to rebuild_refcount_structure() 2022-04-20 12:09:17 +02:00
qcow2-snapshot.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qcow2-threads.c qcow2: add zstd cluster compression 2020-05-13 14:20:31 +02:00
qcow2.c qcow2: Do not reopen data_file in invalidate_cache 2022-05-04 15:55:23 +02:00
qcow2.h Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
qcow.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qed-check.c
qed-cluster.c
qed-l2-cache.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qed-table.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qed.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
qed.h qed: Simplify backing reads 2020-07-06 10:34:14 +02:00
quorum.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
raw-format.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
rbd.c block/rbd: report a better error when namespace does not exist 2022-06-24 17:07:06 +02:00
replication.c job: @force parameter for job_cancel_sync() 2021-10-07 10:42:09 +02:00
reqlist.c block/reqlist: add reqlist_wait_all() 2022-03-07 09:33:30 +01:00
snapshot-access.c block: introduce snapshot-access block driver 2022-03-07 09:33:31 +01:00
snapshot.c include/block/snapshot: global state API + assertions 2022-03-04 18:18:25 +01:00
ssh.c Replace GCC_FMT_ATTR with G_GNUC_PRINTF 2022-03-22 14:40:51 +04:00
stream.c block/stream: Drain subtree around graph change 2022-03-29 16:30:55 +02:00
throttle-groups.c block/throttle-groups: throttle_group_co_io_limits_intercept(): 64bit bytes 2021-02-03 08:14:00 -06:00
throttle.c block: use int64_t instead of int in driver discard handlers 2021-09-29 13:46:32 -05:00
trace-events block/nvme: Display CQ/SQ pointer in nvme_free_queue_pair() 2021-11-02 15:49:12 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vdi.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
vhdx-endian.c
vhdx-log.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
vhdx.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
vhdx.h
vmdk.c block/vmdk: Fix reopening bs->file 2022-05-04 15:55:23 +02:00
vpc.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
vvfat.c vvfat: Fix vvfat_write() for writes before the root directory 2022-01-14 12:03:16 +01:00
win32-aio.c osdep: Move memalign-related functions to their own header 2022-03-07 13:16:49 +00:00
write-threshold.c write-threshold: deal with includes 2021-05-14 16:14:10 +02:00