diff options
Diffstat (limited to 'src/rgw/rgw_bucket.cc')
-rw-r--r-- | src/rgw/rgw_bucket.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/rgw/rgw_bucket.cc b/src/rgw/rgw_bucket.cc index 3cb730b555e..c6498daaf42 100644 --- a/src/rgw/rgw_bucket.cc +++ b/src/rgw/rgw_bucket.cc @@ -1450,7 +1450,13 @@ public: if (ret < 0) return ret; - ret = rgw_unlink_bucket(store, be.owner, entry); + /* + * Note that we unlink the bucket but don't want the entry point to be updated + * as we're going to remove it immediately after that. Another reason why we + * do that is that if we update the entry point, we'll also need to update + * objv_tracker, otherwise the following bucket obj removal is going to fail. + */ + ret = rgw_unlink_bucket(store, be.owner, entry, false); if (ret < 0) { lderr(store->ctx()) << "could not unlink bucket=" << entry << " owner=" << be.owner << dendl; } |