From 96888ddf154231daa6c7138bb2b97674771cc610 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 5 Nov 2012 23:27:13 -0800 Subject: [PATCH] mds: move to from loner -> mix if *anyone* wants rd|wr We were either going to MIX or SYNC depending on whether non-loners wanted to read/write, but it may be that the loner wants to if our logic for choosing loner vs not longer is based on anything other that just rd|wr wanted. Signed-off-by: Sage Weil --- src/mds/Locker.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 651e11342e0e9..8b771852d49f9 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -4005,7 +4005,7 @@ void Locker::file_eval(ScatterLock *lock, bool *need_issue) (in->inode.is_dir() && in->multiple_nonstale_caps())) { // FIXME.. :/ dout(20) << " should lose it" << dendl; // we should lose it. - if ((other_wanted & (CEPH_CAP_GRD|CEPH_CAP_GWR)) || + if (((other_wanted|loner_wanted) & (CEPH_CAP_GRD|CEPH_CAP_GWR)) || lock->is_waiter_for(SimpleLock::WAIT_WR)) scatter_mix(lock, need_issue); else if (!lock->is_wrlocked()) // let excl wrlocks drain first -- 2.39.5