From: Sage Weil Date: Wed, 14 May 2008 17:08:51 +0000 (-0700) Subject: mds: fix gather deadlock in FileLock X-Git-Tag: v0.3~209^2~60 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=207e0579f12a22d4c3844414a5c87df77f9857cb;p=ceph.git mds: fix gather deadlock in FileLock --- diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index e0cad2cc2ffe..5e51c468f30d 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -3067,12 +3067,10 @@ void Locker::file_lock(FileLock *lock) issue_caps(in); } else { //assert(issued); // ??? -sage 2/19/06 - if (issued) { - // change lock - lock->set_state(LOCK_GLOCKM); - lock->get_parent()->auth_pin(); - + lock->set_state(LOCK_GLOCKM); + if (issued & ~lock->caps_allowed()) { // call back caps + lock->get_parent()->auth_pin(); issue_caps(in); } else { lock->set_state(LOCK_LOCK);