From 7000860b2669449601a1f5bbd2c674715220f81a Mon Sep 17 00:00:00 2001 From: Mykola Golub Date: Mon, 9 Apr 2018 15:32:12 +0300 Subject: [PATCH] librbd: handle CEPH_NOSNAP case outside of deep_copy::util::compute_snap_map Signed-off-by: Mykola Golub --- src/librbd/DeepCopyRequest.cc | 4 ++++ src/librbd/deep_copy/Utils.cc | 7 +------ 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/librbd/DeepCopyRequest.cc b/src/librbd/DeepCopyRequest.cc index d4a20a717ab..56b177553f1 100644 --- a/src/librbd/DeepCopyRequest.cc +++ b/src/librbd/DeepCopyRequest.cc @@ -122,6 +122,10 @@ void DeepCopyRequest::handle_copy_snapshots(int r) { return; } + if (m_snap_id_end == CEPH_NOSNAP) { + (*m_snap_seqs)[CEPH_NOSNAP] = CEPH_NOSNAP; + } + send_copy_image(); } diff --git a/src/librbd/deep_copy/Utils.cc b/src/librbd/deep_copy/Utils.cc index 85a4b5b9853..32b96587d19 100644 --- a/src/librbd/deep_copy/Utils.cc +++ b/src/librbd/deep_copy/Utils.cc @@ -16,17 +16,12 @@ void compute_snap_map(librados::snap_t snap_id_start, snap_ids.insert(snap_ids.begin(), it.second); if (it.first < snap_id_start) { continue; - } else if (snap_id_end != CEPH_NOSNAP && it.first > snap_id_end) { + } else if (it.first > snap_id_end) { break; } (*snap_map)[it.first] = snap_ids; } - - if (snap_id_end == CEPH_NOSNAP) { - snap_ids.insert(snap_ids.begin(), CEPH_NOSNAP); - (*snap_map)[CEPH_NOSNAP] = snap_ids; - } } } // util -- 2.39.5