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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Chen Hanxiao <chenhanxiao@xxxxxxxxx>

We forget to check the return value of rados_conf_set.

Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxx>
---
v2: add another missing return value check

 src/storage/storage_backend_rbd.c | 27 +++++++++++++++++++++++----
 1 file changed, 23 insertions(+), 4 deletions(-)

diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
index 718c4d6..85ff99b 100644
--- a/src/storage/storage_backend_rbd.c
+++ b/src/storage/storage_backend_rbd.c
@@ -159,13 +159,27 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
      * Operations in librados will return -ETIMEDOUT when the timeout is reached.
      */
     VIR_DEBUG("Setting RADOS option client_mount_timeout to %s", client_mount_timeout);
-    rados_conf_set(ptr->cluster, "client_mount_timeout", client_mount_timeout);
+    if (rados_conf_set(ptr->cluster, "client_mount_timeout", client_mount_timeout) < 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("failed to set RADOS option: %s"),
+                       "client_mount_timeout");
+        goto cleanup;
 
     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;
+    }
 
     VIR_DEBUG("Setting RADOS option rados_osd_op_timeout to %s", osd_op_timeout);
-    rados_conf_set(ptr->cluster, "rados_osd_op_timeout", osd_op_timeout);
+    if (rados_conf_set(ptr->cluster, "rados_osd_op_timeout", osd_op_timeout) < 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("failed to set RADOS option: %s"),
+                       "rados_osd_op_timeout");
+        goto cleanup;
+    }
 
     /*
      * Librbd supports creating RBD format 2 images. We no longer have to invoke
@@ -173,7 +187,12 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
      * This leaves us to simply use rbd_create() and use the default behavior of librbd
      */
     VIR_DEBUG("Setting RADOS option rbd_default_format to %s", rbd_default_format);
-    rados_conf_set(ptr->cluster, "rbd_default_format", rbd_default_format);
+    if (rados_conf_set(ptr->cluster, "rbd_default_format", rbd_default_format) < 0) {
+        virReportError(VIR_ERR_INTERNAL_ERROR,
+                       _("failed to set RADOS option: %s"),
+                       "rbd_default_format");
+        goto cleanup;
+    }
 
     ptr->starttime = time(0);
     if ((r = rados_connect(ptr->cluster)) < 0) {
-- 
1.8.3.1


--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]