]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
interval_set: slightly better API for erase
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 19 Apr 2011 00:32:16 +0000 (17:32 -0700)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Tue, 19 Apr 2011 00:32:16 +0000 (17:32 -0700)
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
src/include/interval_set.h
src/osdc/Journaler.cc

index 9938a33448b2ebb7aefecfa517be56e78aada959..19e178361e852a5d462a47e6c14be044f00bf0cf 100644 (file)
@@ -366,7 +366,7 @@ class interval_set {
     other._size = t;
   }    
   
-  void erase(const iterator i) {
+  void erase(iterator &i) {
     _size -= i.get_len();
     m.erase(i._iter);
   }
index e1620cf0e6824c8ad280d1154074ca8d1f93607c..cfc6a9e10876fac927a838b69dee9fcf367d5a1d 100644 (file)
@@ -639,8 +639,9 @@ void Journaler::_prezeroed(int r, uint64_t start, uint64_t len)
     prezero_pos += len;
     while (!pending_zero.empty() &&
           pending_zero.begin().get_start() == prezero_pos) {
-      prezero_pos += pending_zero.begin().get_len();
-      pending_zero.erase(pending_zero.begin());
+      interval_set<uint64_t>::iterator b(pending_zero.begin());
+      prezero_pos += b.get_len();
+      pending_zero.erase(b);
     }
 
     if (waiting_for_zero) {