From b940d7750d14285fc85ce63b0f0444b58ad3ad93 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 5 Nov 2012 23:26:09 -0800 Subject: mds: base loner decision on wanted RD|WR|EXCL, not CACHE|BUFFER Observed instance where one client wanted the Fc cap and prevented the loner from getting RD|WR caps. 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 72802ea7e7c..651e11342e0 100644 --- a/src/mds/Locker.cc +++ b/src/mds/Locker.cc @@ -4001,7 +4001,7 @@ void Locker::file_eval(ScatterLock *lock, bool *need_issue) in->get_caps_issued(&loner_issued, &other_issued, &xlocker_issued, CEPH_CAP_SFILE); if (!((loner_wanted|loner_issued) & (CEPH_CAP_GEXCL|CEPH_CAP_GWR|CEPH_CAP_GBUFFER)) || - (other_wanted & (CEPH_CAP_GEXCL|CEPH_CAP_GWR|CEPH_CAP_GBUFFER|CEPH_CAP_GRD|CEPH_CAP_GCACHE)) || + (other_wanted & (CEPH_CAP_GEXCL|CEPH_CAP_GWR|CEPH_CAP_GRD)) || (in->inode.is_dir() && in->multiple_nonstale_caps())) { // FIXME.. :/ dout(20) << " should lose it" << dendl; // we should lose it. -- cgit v1.2.1