diff options
Diffstat (limited to 'src/osd/ReplicatedPG.cc')
-rw-r--r-- | src/osd/ReplicatedPG.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 5e099c0853d..bc995a6fc86 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -4583,10 +4583,11 @@ void ReplicatedPG::cancel_copy(CopyOpRef cop) void ReplicatedPG::cancel_copy_ops() { dout(10) << __func__ << dendl; - for (map<hobject_t,CopyOpRef>::iterator p = copy_ops.begin(); - p != copy_ops.end(); - copy_ops.erase(p++)) { - cancel_copy(p->second); + map<hobject_t,CopyOpRef>::iterator p = copy_ops.begin(); + while (p != copy_ops.end()) { + CopyOpRef cop = p->second; + p++; + cancel_copy(cop); } } |