]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds/flock: properly update ceph_lock_state_t::client_waiting_lock_counts
authorYan, Zheng <zyan@redhat.com>
Sat, 3 Jun 2017 04:01:27 +0000 (12:01 +0800)
committerYan, Zheng <zyan@redhat.com>
Sat, 3 Jun 2017 04:26:58 +0000 (12:26 +0800)
no item is added to waiting_locks when deadlock check fails

Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
src/mds/flock.cc

index 73c91801308de1238a2356d0bda6784676416078..a34dc9153fcc29b4474d60f7775181b2dc09bc52 100644 (file)
@@ -141,6 +141,7 @@ bool ceph_lock_state_t::is_deadlock(const ceph_filelock& fl,
 void ceph_lock_state_t::add_waiting(const ceph_filelock& fl)
 {
   waiting_locks.insert(pair<uint64_t, ceph_filelock>(fl.start, fl));
+  ++client_waiting_lock_counts[(client_t)fl.client];
   if (type == CEPH_LOCK_FCNTL) {
     global_waiting_locks.insert(pair<ceph_filelock,ceph_lock_state_t*>(fl, this));
   }
@@ -200,8 +201,6 @@ bool ceph_lock_state_t::add_lock(ceph_filelock& new_lock,
   if (ret) {
     ++client_held_lock_counts[(client_t)new_lock.client];
   }
-  else if (wait_on_fail && !replay)
-    ++client_waiting_lock_counts[(client_t)new_lock.client];
   return ret;
 }