]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix filelock eval_gather
authorSage Weil <sage@inktank.com>
Sat, 8 Jun 2013 05:04:09 +0000 (22:04 -0700)
committerGreg Farnum <greg@inktank.com>
Wed, 9 Oct 2013 20:47:07 +0000 (13:47 -0700)
Broken by a08d62045657713bf0a5372bf14136082ec3b17e

Reported-by: Yan, Zheng <yan.zheng@intel.com>
Signed-off-by: Sage Weil <sage@inktank.com>
(cherry picked from commit e8300d0afb5154d4d13536abdcf47bd5cc8ce810)
Reviewed-by: Greg Farnum <greg@inktank.com>
src/mds/Locker.cc

index fd46be09320620e79176dfa507b1c80b79083566..28d09f33978389179bb34f66b7768fe19485fbf3 100644 (file)
@@ -646,12 +646,13 @@ void Locker::eval_gather(SimpleLock *lock, bool first, bool *pneed_issue, list<C
       assert(in);
       if (in->state_test(CInode::STATE_RECOVERING)) {
        dout(7) << "eval_gather finished gather, but still recovering" << dendl;
+       return;
       } else if (in->state_test(CInode::STATE_NEEDSRECOVER)) {
        dout(7) << "eval_gather finished gather, but need to recover" << dendl;
        mds->mdcache->queue_file_recover(in);
        mds->mdcache->do_file_recover();
+       return;
       }
-      return;
     }
 
     if (!lock->get_parent()->is_auth()) {