[Qemu-devel] [PATCH] rbd: make the code better readable
Make it a bit clear and better readable. Signed-off-by: Xiubo Li --- block/rbd.c | 24 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/block/rbd.c b/block/rbd.c index 0a5840d..de8ca1b 100644 --- a/block/rbd.c +++ b/block/rbd.c @@ -366,45 +366,45 @@ static int qemu_rbd_create(const char *filename, QemuOpts *opts, Error **errp) rados_conf_read_file(cluster, NULL); } else if (conf[0] != '\0' && qemu_rbd_set_conf(cluster, conf, true, &local_err) < 0) { -rados_shutdown(cluster); error_propagate(errp, local_err); -return -EIO; +ret = -EIO; +goto failed_shutdown; } if (conf[0] != '\0' && qemu_rbd_set_conf(cluster, conf, false, &local_err) < 0) { -rados_shutdown(cluster); error_propagate(errp, local_err); -return -EIO; +ret = -EIO; +goto failed_shutdown; } if (qemu_rbd_set_auth(cluster, secretid, errp) < 0) { rados_shutdown(cluster); -return -EIO; +ret = -EIO; +goto failed_shutdown; } ret = rados_connect(cluster); if (ret < 0) { error_setg_errno(errp, -ret, "error connecting"); -rados_shutdown(cluster); -return ret; +goto failed_shutdown; } ret = rados_ioctx_create(cluster, pool, &io_ctx); if (ret < 0) { error_setg_errno(errp, -ret, "error opening pool %s", pool); -rados_shutdown(cluster); -return ret; +goto failed_shutdown; } ret = rbd_create(io_ctx, name, bytes, &obj_order); -rados_ioctx_destroy(io_ctx); -rados_shutdown(cluster); if (ret < 0) { error_setg_errno(errp, -ret, "error rbd create"); -return ret; } +rados_ioctx_destroy(io_ctx); + +failed_shutdown: +rados_shutdown(cluster); return ret; } -- 1.8.3.1
[Qemu-devel] [PATCH v2] rbd: make the code more readable
Make it a bit clearer and more readable. Signed-off-by: Xiubo Li CC: John Snow --- V2: - Advice from John Snow. Thanks. block/rbd.c | 25 - 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/block/rbd.c b/block/rbd.c index 0a5840d..d0d4b39 100644 --- a/block/rbd.c +++ b/block/rbd.c @@ -366,45 +366,44 @@ static int qemu_rbd_create(const char *filename, QemuOpts *opts, Error **errp) rados_conf_read_file(cluster, NULL); } else if (conf[0] != '\0' && qemu_rbd_set_conf(cluster, conf, true, &local_err) < 0) { -rados_shutdown(cluster); error_propagate(errp, local_err); -return -EIO; +ret = -EIO; +goto shutdown; } if (conf[0] != '\0' && qemu_rbd_set_conf(cluster, conf, false, &local_err) < 0) { -rados_shutdown(cluster); error_propagate(errp, local_err); -return -EIO; +ret = -EIO; +goto shutdown; } if (qemu_rbd_set_auth(cluster, secretid, errp) < 0) { -rados_shutdown(cluster); -return -EIO; +ret = -EIO; +goto shutdown; } ret = rados_connect(cluster); if (ret < 0) { error_setg_errno(errp, -ret, "error connecting"); -rados_shutdown(cluster); -return ret; +goto shutdown; } ret = rados_ioctx_create(cluster, pool, &io_ctx); if (ret < 0) { error_setg_errno(errp, -ret, "error opening pool %s", pool); -rados_shutdown(cluster); -return ret; +goto shutdown; } ret = rbd_create(io_ctx, name, bytes, &obj_order); -rados_ioctx_destroy(io_ctx); -rados_shutdown(cluster); if (ret < 0) { error_setg_errno(errp, -ret, "error rbd create"); -return ret; } +rados_ioctx_destroy(io_ctx); + +shutdown: +rados_shutdown(cluster); return ret; } -- 1.8.3.1