From: Sage Weil Date: Wed, 5 Dec 2012 13:56:37 +0000 (-0800) Subject: mds: move from EXCL to SYNC if nobody wants to write X-Git-Tag: v0.56~86^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=07b36992da35e8b54acf76af6c893a0d86f048fb;p=ceph.git mds: move from EXCL to SYNC if nobody wants to write We were moving to the MIX even if nobody wanted to write; that is not useful, since if we only want to read SYNC will let us cache those reads. SYNC is also a more friendly place (all things equal) to be. Signed-off-by: Sage Weil --- diff --git a/src/mds/Locker.cc b/src/mds/Locker.cc index 16cfe7f27a8e..0faf8dca5e27 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -4025,7 +4025,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|loner_wanted) & (CEPH_CAP_GRD|CEPH_CAP_GWR)) || + if (((other_wanted|loner_wanted) & 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