From: xie xingguo Date: Sat, 9 Jan 2016 08:02:53 +0000 (+0800) Subject: RBD: fix result code overwritten during header&footer write X-Git-Tag: v10.0.3~61^2~1 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=ed887a6a9aae266ace419ccba5481d2d3c8d53f5;p=ceph.git RBD: fix result code overwritten during header&footer write Fixes: #14317 Signed-off-by: xie xingguo --- diff --git a/src/cls/rbd/cls_rbd.cc b/src/cls/rbd/cls_rbd.cc index 22382a20c5d44..025e8f329def2 100644 --- a/src/cls/rbd/cls_rbd.cc +++ b/src/cls/rbd/cls_rbd.cc @@ -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; }