]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
librbd: resolve static analyser warnings 12863/head
authorJason Dillaman <dillaman@redhat.com>
Tue, 10 Jan 2017 13:33:30 +0000 (08:33 -0500)
committerJason Dillaman <dillaman@redhat.com>
Tue, 10 Jan 2017 13:34:38 +0000 (08:34 -0500)
Signed-off-by: Jason Dillaman <dillaman@redhat.com>
src/cls/rbd/cls_rbd.cc
src/librbd/AioImageRequest.cc
src/librbd/image/CreateRequest.cc
src/librbd/internal.cc

index 4cd079cc73da37213feb04cd068c78c1471b2a9b..22fd7577b364af6926d963c1b69ed1fb66e563bc 100644 (file)
@@ -2712,19 +2712,19 @@ int metadata_get(cls_method_context_t hctx, bufferlist *in, bufferlist *out)
 int snapshot_get_limit(cls_method_context_t hctx, bufferlist *in,
                       bufferlist *out)
 {
-  int rc;
   uint64_t snap_limit;
-
-  rc = read_key(hctx, "snap_limit", &snap_limit);
-  if (rc == -ENOENT) {
-    rc = 0;
-    ::encode(UINT64_MAX, *out);
-  } else {
-    ::encode(snap_limit, *out);
+  int r = read_key(hctx, "snap_limit", &snap_limit);
+  if (r == -ENOENT) {
+    snap_limit = UINT64_MAX;
+  } else if (r < 0) {
+    CLS_ERR("error retrieving snapshot limit: %s", cpp_strerror(r).c_str());
+    return r;
   }
 
   CLS_LOG(20, "read snapshot limit %lu", snap_limit);
-  return rc;
+  ::encode(snap_limit, *out);
+
+  return 0;
 }
 
 int snapshot_set_limit(cls_method_context_t hctx, bufferlist *in,
@@ -3777,7 +3777,10 @@ int mirror_peer_add(cls_method_context_t hctx, bufferlist *in,
 
   std::string mirror_uuid;
   r = mirror::uuid_get(hctx, &mirror_uuid);
-  if (mirror_peer.uuid == mirror_uuid) {
+  if (r < 0) {
+    CLS_ERR("error retrieving mirroring uuid: %s", cpp_strerror(r).c_str());
+    return r;
+  } else if (mirror_peer.uuid == mirror_uuid) {
     CLS_ERR("peer uuid '%s' matches pool mirroring uuid",
             mirror_uuid.c_str());
     return -EINVAL;
index 387b78678646da1cdd48e4b02a11d34cc7538661..e3a75d634b44d953662b3076cc8a0166009ad3dc 100644 (file)
@@ -472,7 +472,7 @@ uint64_t AioImageWrite<I>::append_journal_event(
     const AioObjectRequests &requests, bool synchronous) {
   I &image_ctx = this->m_image_ctx;
 
-  uint64_t tid;
+  uint64_t tid = 0;
   uint64_t buffer_offset = 0;
   assert(!this->m_image_extents.empty());
   for (auto &extent : this->m_image_extents) {
@@ -561,7 +561,7 @@ uint64_t AioImageDiscard<I>::append_journal_event(
     const AioObjectRequests &requests, bool synchronous) {
   I &image_ctx = this->m_image_ctx;
 
-  uint64_t tid;
+  uint64_t tid = 0;
   assert(!this->m_image_extents.empty());
   for (auto &extent : this->m_image_extents) {
     journal::EventEntry event_entry(journal::AioDiscardEvent(extent.first,
index f71642ddc8bd2461e9d839f102b0cc932d8ae0a3..5f0bbe6f9de3f33b6be14e924dad418f7f050e84 100644 (file)
@@ -412,7 +412,7 @@ Context *CreateRequest<I>::handle_negotiate_features(int *result) {
   ldout(m_cct, 20) << __func__ << ": r=" << *result << dendl;
 
   uint64_t all_features;
-  if (*result == 0) {
+  if (*result >= 0) {
     bufferlist::iterator it = m_outbl.begin();
     *result = cls_client::get_all_features_finish(&it, &all_features);
   }
index 49e4e4b9f19112f82801fa6cca675a1267272e15..e7742c5ac4bd847108171e4f518663cc9a0b5ac5 100644 (file)
@@ -3029,6 +3029,7 @@ void filter_out_mirror_watchers(ImageCtx *ictx,
           if (r < 0) {
             lderr(cct) << "error enabling mirroring for image "
                        << img_pair.first << ": " << cpp_strerror(r) << dendl;
+            img_ctx->state->close();
             return r;
           }