diff options
author | Yan, Zheng <zheng.z.yan@intel.com> | 2012-11-19 10:43:36 +0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2012-12-01 12:52:21 -0800 |
commit | 5620f3d0bfec29ae3f58c57d2ec502cb41b2cefd (patch) | |
tree | 0948e40ba627c2a713da77afe8c06c56ed2a3d71 | |
parent | 7794de61b5f4b5c2e20c99e26c8578361d9b0247 (diff) | |
download | ceph-5620f3d0bfec29ae3f58c57d2ec502cb41b2cefd.tar.gz |
mds: allow try_eval to eval unstable locks in freezing object
Unstable locks hold auth_pins on the object, it prevents the freezing
object become frozen and then unfreeze. So try_eval() should not wait
for freezing object
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
-rw-r--r-- | src/mds/Locker.cc | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index c29ac34ec85..7d55940f1ad 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -845,8 +845,8 @@ void Locker::try_eval(MDSCacheObject *p, int mask) return; } - if (p->is_auth() && !p->can_auth_pin()) { - dout(7) << "try_eval can't auth_pin, waiting on " << *p << dendl; + if (p->is_auth() && p->is_frozen()) { + dout(7) << "try_eval frozen, waiting on " << *p << dendl; p->add_waiter(MDSCacheObject::WAIT_UNFREEZE, new C_Locker_Eval(this, p, mask)); return; } |