diff options
author | Yehuda Sadeh <yehuda@redhat.com> | 2016-01-06 02:01:51 +0100 |
---|---|---|
committer | Yehuda Sadeh <yehuda@redhat.com> | 2016-02-12 01:13:49 +0100 |
commit | 5e93a6869d3dcf619cf0d1b9dfdc529cf4a80822 (patch) | |
tree | 2ada9b0910c54e98518f09cf84a6f50069eae55c /src/cls/rgw/cls_rgw_client.cc | |
parent | rgw: handle delete marker when doing incremental data sync (diff) | |
download | ceph-5e93a6869d3dcf619cf0d1b9dfdc529cf4a80822.tar.xz ceph-5e93a6869d3dcf619cf0d1b9dfdc529cf4a80822.zip |
rgw: guard versioned object removal from circular sync
check if marker instance already exists, only apply (and update bi log)
if does not exist. Propagate the versioning flag so that we apply the
appropriate operation on the object.
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
Diffstat (limited to 'src/cls/rgw/cls_rgw_client.cc')
-rw-r--r-- | src/cls/rgw/cls_rgw_client.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cls/rgw/cls_rgw_client.cc b/src/cls/rgw/cls_rgw_client.cc index c2847741713..686cd6cbd67 100644 --- a/src/cls/rgw/cls_rgw_client.cc +++ b/src/cls/rgw/cls_rgw_client.cc @@ -306,7 +306,7 @@ int cls_rgw_bi_list(librados::IoCtx& io_ctx, const string oid, int cls_rgw_bucket_link_olh(librados::IoCtx& io_ctx, const string& oid, const cls_rgw_obj_key& key, bufferlist& olh_tag, bool delete_marker, const string& op_tag, struct rgw_bucket_dir_entry_meta *meta, - uint64_t olh_epoch, bool log_op) + uint64_t olh_epoch, time_t unmod_since, bool log_op) { bufferlist in, out; struct rgw_cls_link_olh_op call; @@ -319,6 +319,7 @@ int cls_rgw_bucket_link_olh(librados::IoCtx& io_ctx, const string& oid, const cl } call.olh_epoch = olh_epoch; call.log_op = log_op; + call.unmod_since = unmod_since; ::encode(call, in); int r = io_ctx.exec(oid, "rgw", "bucket_link_olh", in, out); if (r < 0) |