}
}
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<Cap*>::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) << " -> "