]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: normalize _xlock_finish
authorSage Weil <sage@newdream.net>
Thu, 8 May 2008 16:37:42 +0000 (09:37 -0700)
committerSage Weil <sage@newdream.net>
Thu, 8 May 2008 16:37:42 +0000 (09:37 -0700)
src/mds/Locker.cc

index cf2aed8163264282c8d20c055fe3fc2e63f83142..09f8cdbdca07d570fb2a7ca101b07e9d500821ea 100644 (file)
@@ -1658,7 +1658,9 @@ void Locker::simple_xlock_finish(SimpleLock *lock, MDRequest *mdr)
   }
 
   // others waiting?
-  lock->finish_waiters(SimpleLock::WAIT_WR, 0); 
+  lock->finish_waiters(SimpleLock::WAIT_STABLE |
+                      SimpleLock::WAIT_WR | 
+                      SimpleLock::WAIT_RD, 0); 
 
   // eval?
   if (lock->get_parent()->is_auth())
@@ -2497,7 +2499,9 @@ void Locker::local_xlock_finish(LocalLock *lock, MDRequest *mdr)
   mdr->xlocks.erase(lock);
   mdr->locks.erase(lock);
 
-  lock->finish_waiters(SimpleLock::WAIT_STABLE|SimpleLock::WAIT_WR);
+  lock->finish_waiters(SimpleLock::WAIT_STABLE | 
+                      SimpleLock::WAIT_WR | 
+                      SimpleLock::WAIT_RD);
 }
 
 
@@ -2673,7 +2677,9 @@ void Locker::file_xlock_finish(FileLock *lock, MDRequest *mdr)
   assert(lock->get_parent()->is_auth());  // or implement remote xlocks
 
   // others waiting?
-  lock->finish_waiters(SimpleLock::WAIT_WR|SimpleLock::WAIT_RD, 0); 
+  lock->finish_waiters(SimpeLock::WAIT_STABLE | 
+                      SimpleLock::WAIT_WR | 
+                      SimpleLock::WAIT_RD, 0); 
 
   if (lock->get_parent()->is_auth())
     file_eval(lock);