]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD,ReplicatedPG::snap_trimmer: pg->put() in process, not snap_trimmer()
authorSamuel Just <sam.just@inktank.com>
Tue, 3 Jul 2012 16:03:53 +0000 (09:03 -0700)
committerSamuel Just <sam.just@inktank.com>
Fri, 6 Jul 2012 00:18:55 +0000 (17:18 -0700)
This clarifies responsibility for the reference.

Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/OSD.h
src/osd/ReplicatedPG.cc

index ca13f4ba6abbd1bf4944b46a4f6368ef422c0e2f..34021ff4011307c6f569dadd232795efb008a9ca 100644 (file)
@@ -1045,6 +1045,7 @@ protected:
     }
     void _process(PG *pg) {
       pg->snap_trimmer();
+      pg->put();
     }
     void _clear() {
       osd->snap_trim_queue.clear();
index b4d5e97d129ca53ad19a24072c0dab3ce6047ced..3ba29d6baefc1a2091fa9c3de9b606667a7ca342 100644 (file)
@@ -1424,7 +1424,6 @@ void ReplicatedPG::snap_trimmer()
   lock();
   if (deleting) {
     unlock();
-    put();
     return;
   }
   dout(10) << "snap_trimmer entry" << dendl;
@@ -1434,7 +1433,6 @@ void ReplicatedPG::snap_trimmer()
       dout(10) << " can't write, requeueing" << dendl;
       queue_snap_trim();
       unlock();
-      put();
       return;
     }
     if (!scrub_block_writes) {
@@ -1457,7 +1455,6 @@ void ReplicatedPG::snap_trimmer()
     queue_snap_trim();
   }
   unlock();
-  put();
   return;
 }