mirror of
https://github.com/ceph/ceph
synced 2025-01-21 02:31:19 +00:00
librbd: request exclusive lock when moving to trash
Even if the image is in-use, moving it to the trash does not remove any data. This also solves a race between snapshot-based mirroring shutting down and being able to move a mirrored image to the trash. Signed-off-by: Jason Dillaman <dillaman@redhat.com>
This commit is contained in:
parent
470ce1c0d7
commit
ae726336d2
@ -158,7 +158,7 @@ int Trash<I>::move(librados::IoCtx &io_ctx, rbd_trash_image_source_t source,
|
||||
ictx->exclusive_lock->block_requests(0);
|
||||
|
||||
r = ictx->operations->prepare_image_update(
|
||||
exclusive_lock::OPERATION_REQUEST_TYPE_GENERAL, false);
|
||||
exclusive_lock::OPERATION_REQUEST_TYPE_GENERAL, true);
|
||||
if (r < 0) {
|
||||
lderr(cct) << "cannot obtain exclusive lock - not removing" << dendl;
|
||||
ictx->owner_lock.unlock_shared();
|
||||
|
Loading…
Reference in New Issue
Block a user