]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: verify is_stable() before calling simple_eval()
authorSage Weil <sage@newdream.net>
Tue, 13 Jan 2009 02:45:33 +0000 (18:45 -0800)
committerSage Weil <sage@newdream.net>
Tue, 13 Jan 2009 02:45:33 +0000 (18:45 -0800)
The finish_waiters may change the state again.

src/mds/Locker.cc

index c4d282c62a2fa02e32d62703d5da167c4a3d48c1..9dc987631a40c601b56b96849124180af18b5cf6 100644 (file)
@@ -1742,7 +1742,8 @@ void Locker::simple_eval_gather(SimpleLock *lock)
       lock->get_parent()->auth_unpin(lock);
 
       // re-eval?
-      simple_eval(lock);
+      if (lock->is_stable())
+       simple_eval(lock);
     }
   }
 
@@ -1759,7 +1760,8 @@ void Locker::simple_eval_gather(SimpleLock *lock)
     lock->get_parent()->auth_unpin(lock);
 
     // re-eval?
-    simple_eval(lock);
+    if (lock->is_stable())
+      simple_eval(lock);
   }
 }