From b0241b63535d5d69a657288f3bdbd7e53b3d4f52 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 30 Apr 2008 18:56:17 -0700 Subject: [PATCH] mds: fix hang on FileLock transition to LOCK --- src/mds/Locker.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index d75634dd0147a..f0aa2833771e3 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -3000,7 +3000,7 @@ bool Locker::file_sync(FileLock *lock) void Locker::file_lock(FileLock *lock) { CInode *in = (CInode*)lock->get_parent(); - dout(7) << "inode_file_lock " << *lock << " on " << *lock->get_parent() << dendl; + dout(7) << "file_lock " << *lock << " on " << *lock->get_parent() << dendl; assert(in->is_auth()); assert(lock->is_stable()); @@ -3020,12 +3020,12 @@ void Locker::file_lock(FileLock *lock) lock->get_parent()->auth_pin(); // call back caps - if (issued) + if (issued & ~lock->caps_allowed()) issue_caps(in); } else { - if (issued) { + lock->set_state(LOCK_GLOCKR); + if (issued & ~lock->caps_allowed()) { // call back caps - lock->set_state(LOCK_GLOCKR); lock->get_parent()->auth_pin(); issue_caps(in); } else { -- 2.39.5