diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 6aa76046157..08e848b55d9 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -133,6 +133,8 @@ tid_t Objecter::linger(const object_t& oid, const object_locator_t& oloc, LingerOp *info = new LingerOp; info->oid = oid; info->oloc = oloc; + if (info->oloc.key == oid) + info->oloc.key.clear(); info->snap = snap; info->flags = flags; info->ops = op.ops; diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index b7873479952..bf1d269bcba 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -391,6 +391,9 @@ public: tid(0), attempts(0), paused(false), objver(ov), reply_epoch(NULL) { ops.swap(op); + + if (oloc.key == o) + oloc.key.clear(); } bool operator<(const Op& other) const {