]> 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:28:25 +0000 (10:28 -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>
(cherry picked from commit 0071b8e75bd3f5a09cc46e2225a018f6d1ef0680)

src/mds/Locker.cc

index 4a23e0bc47fc453da854c4be976b4c39ecbdf16a..3d8c5469a3c4ccd43868335e2d9a3fa8610d66ac 100644 (file)
@@ -4108,6 +4108,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;