From: Mykola Golub Date: Tue, 26 Mar 2019 15:09:58 +0000 (+0000) Subject: librbd: do not allow to deep copy migrating image X-Git-Tag: v14.2.2~178^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4e14dfc62730a7928f0c8884adca8310132983e4;p=ceph.git librbd: do not allow to deep copy migrating image Fixes: https://tracker.ceph.com/issues/38661 Signed-off-by: Mykola Golub (cherry picked from commit aeb9192011000bbecc7afa64fb6b7b4e58b5c448) --- diff --git a/src/librbd/api/Image.cc b/src/librbd/api/Image.cc index 48bec35da0c21..13c5a90d8c547 100644 --- a/src/librbd/api/Image.cc +++ b/src/librbd/api/Image.cc @@ -520,6 +520,12 @@ int Image::deep_copy(I *src, librados::IoCtx& dest_md_ctx, uint64_t src_size; { RWLock::RLocker snap_locker(src->snap_lock); + + if (!src->migration_info.empty()) { + lderr(cct) << "cannot deep copy migrating image" << dendl; + return -EBUSY; + } + features = (src->features & ~RBD_FEATURES_IMPLICIT_ENABLE); src_size = src->get_image_size(src->snap_id); }