m->put();
}
-void Locker::process_cap_update(MDRequest *mdr, client_t client,
- inodeno_t ino, uint64_t cap_id, int caps, int wanted,
- int seq, int issue_seq, int mseq,
- const string& dname)
+void Locker::process_request_cap_release(MDRequest *mdr, client_t client, const ceph_mds_request_release& item,
+ const string &dname)
{
+ inodeno_t ino = (uint64_t)item.ino;
+ uint64_t cap_id = item.cap_id;
+ int caps = item.caps;
+ int wanted = item.wanted;
+ int seq = item.seq;
+ int issue_seq = item.issue_seq;
+ int mseq = item.mseq;
+
CInode *in = mdcache->get_inode(ino);
if (!in)
return;
// caps
- void process_cap_update(MDRequest *mdr, client_t client,
- inodeno_t ino, uint64_t cap_id, int caps, int wanted,
- int seq, int issue_seq, int mseq,
- const string& dname);
+ void process_request_cap_release(MDRequest *mdr, client_t client, const ceph_mds_request_release& r,
+ const string &dname);
+
void kick_cap_releases(MDRequest *mdr);
void remove_client_cap(CInode *in, client_t client);
for (vector<MClientRequest::Release>::iterator p = req->releases.begin();
p != req->releases.end();
p++)
- mds->locker->process_cap_update(mdr, client,
- inodeno_t((uint64_t)p->item.ino), p->item.cap_id,
- p->item.caps, p->item.wanted,
- p->item.seq,
- p->item.issue_seq,
- p->item.mseq, p->dname);
+ mds->locker->process_request_cap_release(mdr, client, p->item, p->dname);
}