diff options
author | Sage Weil <sage@inktank.com> | 2013-12-23 19:21:44 +0100 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-12-23 19:21:44 +0100 |
commit | 2e4c61b6022c1a7e6b046751a8466d715bd1d9ea (patch) | |
tree | 6feb6bd1e58300af07cea4f9e880aaccab69d7cb /src/osdc | |
parent | Merge remote-tracking branch 'gh/next' (diff) | |
download | ceph-2e4c61b6022c1a7e6b046751a8466d715bd1d9ea.tar.xz ceph-2e4c61b6022c1a7e6b046751a8466d715bd1d9ea.zip |
osd/ReplicatedPG: include omap header in copy-get
Missed this the first time around. Thank you, ceph_test_rados!
Fixes: #7056
Signed-off-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'src/osdc')
-rw-r--r-- | src/osdc/Objecter.h | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index 228a744b0cb..4a1a54da486 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -571,7 +571,7 @@ struct ObjectOperation { utime_t *out_mtime; string *out_category; std::map<std::string,bufferlist> *out_attrs; - bufferlist *out_data; + bufferlist *out_data, *out_omap_header; std::map<std::string,bufferlist> *out_omap; int *prval; C_ObjectOperation_copyget(object_copy_cursor_t *c, @@ -579,12 +579,13 @@ struct ObjectOperation { utime_t *m, string *cat, std::map<std::string,bufferlist> *a, - bufferlist *d, + bufferlist *d, bufferlist *oh, std::map<std::string,bufferlist> *o, int *r) : cursor(c), out_size(s), out_mtime(m), out_category(cat), - out_attrs(a), out_data(d), out_omap(o), prval(r) {} + out_attrs(a), out_data(d), out_omap_header(oh), + out_omap(o), prval(r) {} void finish(int r) { if (r < 0) return; @@ -602,6 +603,8 @@ struct ObjectOperation { *out_attrs = copy_reply.attrs; if (out_data) out_data->claim_append(copy_reply.data); + if (out_omap_header) + out_omap_header->claim_append(copy_reply.omap_header); if (out_omap) *out_omap = copy_reply.omap; *cursor = copy_reply.cursor; @@ -619,6 +622,7 @@ struct ObjectOperation { string *out_category, std::map<std::string,bufferlist> *out_attrs, bufferlist *out_data, + bufferlist *out_omap_header, std::map<std::string,bufferlist> *out_omap, int *prval) { OSDOp& osd_op = add_op(CEPH_OSD_OP_COPY_GET); @@ -629,7 +633,8 @@ struct ObjectOperation { out_rval[p] = prval; C_ObjectOperation_copyget *h = new C_ObjectOperation_copyget(cursor, out_size, out_mtime, out_category, - out_attrs, out_data, out_omap, prval); + out_attrs, out_data, out_omap_header, + out_omap, prval); out_bl[p] = &h->bl; out_handler[p] = h; } |