]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: stay in SCAN state in file_eval
authorSage Weil <sage@inktank.com>
Tue, 28 May 2013 17:51:11 +0000 (10:51 -0700)
committerSage Weil <sage@inktank.com>
Wed, 29 May 2013 17:27:26 +0000 (10:27 -0700)
If we are in the SCAN state, stay there until the recovery finishes.  Do
not jump to another state from file_eval().

Signed-off-by: Sage Weil <sage@inktank.com>
src/mds/Locker.cc

index aa90bb07b30771ef762569395d479a683de9d4fe..57154b3d9f6d1000a26b65e3485dca863a2ab8a6 100644 (file)
@@ -4150,6 +4150,10 @@ void Locker::file_eval(ScatterLock *lock, bool *need_issue)
   if (lock->get_parent()->is_freezing_or_frozen())
     return;
 
+  // wait for scan
+  if (lock->get_state() == LOCK_SCAN)
+    return;
+
   // excl -> *?
   if (lock->get_state() == LOCK_EXCL) {
     dout(20) << " is excl" << dendl;