]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
RBD: fix result code overwritten during header&footer write
authorxie xingguo <xie.xingguo@zte.com.cn>
Sat, 9 Jan 2016 08:02:53 +0000 (16:02 +0800)
committerxie xingguo <xie.xingguo@zte.com.cn>
Sat, 9 Jan 2016 08:07:55 +0000 (16:07 +0800)
Fixes: #14317
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
src/cls/rbd/cls_rbd.cc

index 22382a20c5d44a35f03f6b1d370c44f0c26579cb..025e8f329def25488c9e83c57ccaa16e9123a34b 100644 (file)
@@ -2377,19 +2377,23 @@ int object_map_update(cls_method_context_t hctx, bufferlist *in, bufferlist *out
     object_map.encode_data(data_bl, byte_offset, byte_length);
     r = cls_cxx_write(hctx, object_map.get_header_length() + byte_offset,
                      data_bl.length(), &data_bl);
-
+    if (r < 0) {
+      CLS_ERR("failed to write object map header: %s", cpp_strerror(r).c_str());  
+      return r;         
+    }
+   
     footer_bl.clear();
     object_map.encode_footer(footer_bl);
     r = cls_cxx_write(hctx, object_map.get_footer_offset(), footer_bl.length(),
                      &footer_bl);
+    if (r < 0) {
+      CLS_ERR("failed to write object map footer: %s", cpp_strerror(r).c_str());  
+      return r;
+    } 
   } else {
     CLS_LOG(20, "object_map_update: no update necessary");
   }
 
-  if (r < 0) {
-    return r;
-  }
-
   return 0;
 }