]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
again
authorsageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Tue, 9 Oct 2007 23:27:36 +0000 (23:27 +0000)
committersageweil <sageweil@29311d96-e01e-0410-9327-a35deaab8ce9>
Tue, 9 Oct 2007 23:27:36 +0000 (23:27 +0000)
git-svn-id: https://ceph.svn.sf.net/svnroot/ceph@1905 29311d96-e01e-0410-9327-a35deaab8ce9

branches/sage/mds/mds/CDir.cc

index 428bb586bdb85730b18f8d24f3f697aa22487a70..93f753aaa508734cf5854972e31f0f61232926ce 100644 (file)
@@ -1553,14 +1553,14 @@ void CDir::unfreeze_tree()
     // waiters?
     finish_waiting(WAIT_UNFREEZE);
   } else {
+    finish_waiting(WAIT_FROZEN, -1);
+
     // freezing.  stop it.
     assert(state_test(STATE_FREEZINGTREE));
     state_clear(STATE_FREEZINGTREE);
     auth_unpin();
     
-    // cancel freeze waiters
     finish_waiting(WAIT_UNFREEZE);
-    finish_waiting(WAIT_FROZEN, -1);
   }
 }
 
@@ -1651,17 +1651,16 @@ void CDir::unfreeze_dir()
     if (is_auth() && !is_subtree_root())
       inode->auth_unpin();
 
-    // waiters?
     finish_waiting(WAIT_UNFREEZE);
   } else {
+    finish_waiting(WAIT_FROZEN, -1);
+
     // still freezing. stop.
     assert(state_test(STATE_FREEZINGDIR));
     state_clear(STATE_FREEZINGDIR);
     auth_unpin();
     
-    // cancel freeze waiters
     finish_waiting(WAIT_UNFREEZE);
-    finish_waiting(WAIT_FROZEN, -1);
   }
 }