diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 5512db0fbb1..79e70e5a074 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -1696,6 +1696,7 @@ bool Locker::scatter_wrlock_start(ScatterLock *lock, MDRequest *mdr) !lock->get_parent()->is_replicated() && !lock->is_rdlocked() && !lock->is_xlocked() && + lock->get_num_client_lease() == 0 && lock->get_state() == LOCK_SYNC) lock->set_state(LOCK_SCATTER); //scatter_scatter(lock); diff --git a/src/mds/ScatterLock.h b/src/mds/ScatterLock.h index 24a1361f82d..97e09f0032d 100644 --- a/src/mds/ScatterLock.h +++ b/src/mds/ScatterLock.h @@ -167,6 +167,8 @@ public: out << get_lock_type_name(get_type()) << " "; out << get_scatterlock_state_name(get_state()); if (!get_gather_set().empty()) out << " g=" << get_gather_set(); + if (get_num_client_lease()) + out << " c=" << get_num_client_lease(); if (is_rdlocked()) out << " r=" << get_num_rdlocks(); if (is_xlocked())