mdr->mark_event("replying");
// note successful request in session map?
- if (req->may_write() && mdr->session && reply->get_result() == 0)
- mdr->session->add_completed_request(mdr->reqid.tid, mdr->alloc_ino);
+ if (req->may_write() && mdr->session && reply->get_result() == 0) {
+ inodeno_t created = mdr->alloc_ino ? mdr->alloc_ino : mdr->used_prealloc_ino;
+ mdr->session->add_completed_request(mdr->reqid.tid, created);
+ }
// give any preallocated inos to the session
apply_allocated_inos(mdr);
++p) {
if (p->first.name.is_client()) {
dout(10) << "EMetaBlob.replay request " << p->first << " trim_to " << p->second << dendl;
-
+ inodeno_t created = allocated_ino ? allocated_ino : used_preallocated_ino;
// if we allocated an inode, there should be exactly one client request id.
- assert(allocated_ino == inodeno_t() || client_reqs.size() == 1);
+ assert(created == inodeno_t() || client_reqs.size() == 1);
Session *session = mds->sessionmap.get_session(p->first.name);
if (session) {
- session->add_completed_request(p->first.tid, allocated_ino);
+ session->add_completed_request(p->first.tid, created);
if (p->second)
session->trim_completed_requests(p->second);
}