From 54fd7356499698dc1a279b9e60323248aeda5854 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 26 Nov 2008 16:32:29 -0800 Subject: [PATCH] mds: fix up loner_cap whenever we manually change filelock state This is kind of a pain. --- src/mds/MDCache.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mds/MDCache.cc b/src/mds/MDCache.cc index 46050e48dc724..ff81f23297047 100644 --- a/src/mds/MDCache.cc +++ b/src/mds/MDCache.cc @@ -3136,6 +3136,8 @@ void MDCache::handle_cache_rejoin_strong(MMDSCacheRejoin *strong) MDRequest *mdr = request_get(r->second); // should have this from auth_pin above. assert(mdr->is_auth_pinned(in)); lock->set_state(LOCK_LOCK); + if (lock == &in->filelock) + in->loner_cap = -1; lock->get_xlock(mdr); mdr->xlocks.insert(lock); mdr->locks.insert(lock); @@ -3992,6 +3994,7 @@ void MDCache::identify_files_to_recover() continue; if (in->inode.max_size > in->inode.size) { in->filelock.set_state(LOCK_LOCK); + in->loner_cap = -1; q.push_back(in); } } -- 2.39.5