From: Gregory Farnum Date: Fri, 19 Dec 2014 22:45:44 +0000 (-0800) Subject: Merge pull request #3121 from ceph/wip-10277 X-Git-Tag: v0.91~18 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=243b9e4350555a323ccc9f8bb5fb364cce98dff5;p=ceph.git Merge pull request #3121 from ceph/wip-10277 Reviewed-by: Greg Farnum --- 243b9e4350555a323ccc9f8bb5fb364cce98dff5 diff --cc src/client/Client.cc index 11222b4d90c4,a85b63580eed..b7a87115ecfb --- a/src/client/Client.cc +++ b/src/client/Client.cc @@@ -3463,18 -3351,11 +3469,21 @@@ void Client::trim_caps(MetaSession *s, } } s->s_cap_iterator = NULL; + + if (s->caps.size() > max) + _invalidate_kernel_dcache(); } +void Client::force_session_readonly(MetaSession *s) +{ + s->readonly = true; + for (xlist::iterator p = s->caps.begin(); !p.end(); ++p) { + Inode *in = (*p)->inode; + if (in->caps_wanted() & CEPH_CAP_FILE_WR) + signal_cond_list(in->waitfor_caps); + } +} + void Client::mark_caps_dirty(Inode *in, int caps) { ldout(cct, 10) << "mark_caps_dirty " << *in << " " << ccap_string(in->dirty_caps) << " -> "