We can just look at the target loner here, which also takes any caps wanted
by other replicas on other MDSs into account. Otherwise we need to
to duplicate the CInode::calc_ideal_loner() logic.
This assumes the loner field is accurate.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
!lock->is_rdlocked() &&
//!lock->is_waiter_for(SimpleLock::WAIT_WR) &&
(lock->get_scatter_wanted() ||
- (in->multiple_nonstale_caps() && (wanted & CEPH_CAP_GWR)))) {
+ (in->get_wanted_loner() < 0 && (wanted & CEPH_CAP_GWR)))) {
dout(7) << "file_eval stable, bump to mixed " << *lock
<< " on " << *lock->get_parent() << dendl;
scatter_mix(lock, need_issue);