diff options
author | Sage Weil <sage@inktank.com> | 2012-11-05 23:27:13 -0800 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2012-11-05 23:06:03 -0800 |
commit | 96888ddf154231daa6c7138bb2b97674771cc610 (patch) | |
tree | 35fb8c83ef561462b7370c7d0f8d58fb5ac78c43 | |
parent | b940d7750d14285fc85ce63b0f0444b58ad3ad93 (diff) | |
download | ceph-96888ddf154231daa6c7138bb2b97674771cc610.tar.gz |
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 <sage@inktank.com>
-rw-r--r-- | src/mds/Locker.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 651e11342e0..8b771852d49 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 |