summaryrefslogtreecommitdiffstats
path: root/src/cls/rgw/cls_rgw_client.cc
diff options
context:
space:
mode:
authorYehuda Sadeh <yehuda@redhat.com>2016-01-06 02:01:51 +0100
committerYehuda Sadeh <yehuda@redhat.com>2016-02-12 01:13:49 +0100
commit5e93a6869d3dcf619cf0d1b9dfdc529cf4a80822 (patch)
tree2ada9b0910c54e98518f09cf84a6f50069eae55c /src/cls/rgw/cls_rgw_client.cc
parentrgw: handle delete marker when doing incremental data sync (diff)
downloadceph-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.cc3
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)