[libvirt] [PATCH] storage_backend_rbd: check the return value of rados_conf_set

Peter Krempa pkrempa at redhat.com
Fri Nov 11 09:27:48 UTC 2016


On Fri, Nov 11, 2016 at 16:33:18 +0800, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao at gmail.com>
> 
> We forget to check the return value of rados_conf_set.
> 
> Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
> ---
>  src/storage/storage_backend_rbd.c | 21 ++++++++++++++++++---
>  1 file changed, 18 insertions(+), 3 deletions(-)
> 
> diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
> index 718c4d6..58bcb9a 100644
> --- a/src/storage/storage_backend_rbd.c
> +++ b/src/storage/storage_backend_rbd.c
> @@ -162,10 +162,20 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
>      rados_conf_set(ptr->cluster, "client_mount_timeout", client_mount_timeout);

Right in this context is one instance that is not changed ^^^.

>  
>      VIR_DEBUG("Setting RADOS option rados_mon_op_timeout to %s", mon_op_timeout);
> -    rados_conf_set(ptr->cluster, "rados_mon_op_timeout", mon_op_timeout);
> +    if (rados_conf_set(ptr->cluster, "rados_mon_op_timeout", mon_op_timeout) < 0) {
> +        virReportError(VIR_ERR_INTERNAL_ERROR,
> +                       _("failed to set RADOS option: %s"),
> +                       "rados_mon_op_timeout");
> +        goto cleanup;
> +    }

Did you have any problems with this? The documentation mentions only one
error code (ENOENT) if the given config option does not exist in
librados. This would point to us something doing wrong rather than a
random failure and we should address the primary cause.

Peter

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20161111/da49acf5/attachment-0001.sig>


More information about the libvir-list mailing list