mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "openc");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
journal_allocated_inos(mdr, &le->metablob);
mdcache->predirty_journal_parents(mdr, &le->metablob, in, dn->get_dir(), PREDIRTY_PRIMARY|PREDIRTY_DIR, 1);
le->metablob.add_primary_dentry(dn, true, in);
pi->ctime = now;
// log + wait
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
mdcache->predirty_journal_parents(mdr, &le->metablob, cur, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_dirty_inode(mdr, &le->metablob, cur);
EUpdate *le = new EUpdate(mdlog, "open_truncate");
mdlog->start_entry(le);
le->metablob.add_truncate_start(in->ino());
- le->metablob.add_client_req(mdr->reqid);
+ le->metablob.add_client_req(mdr->reqid, mdr->client_request->get_oldest_client_tid());
mdcache->predirty_journal_parents(mdr, &le->metablob, in, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_dirty_inode(mdr, &le->metablob, in);
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "setlayout");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
mdcache->predirty_journal_parents(mdr, &le->metablob, cur, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_dirty_inode(mdr, &le->metablob, cur);
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "setxattr");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
mdcache->predirty_journal_parents(mdr, &le->metablob, cur, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_cow_inode(mdr, &le->metablob, cur);
le->metablob.add_primary_dentry(cur->get_projected_parent_dn(), true, cur, 0, 0, px);
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "removexattr");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
mdcache->predirty_journal_parents(mdr, &le->metablob, cur, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_cow_inode(mdr, &le->metablob, cur);
le->metablob.add_primary_dentry(cur->get_projected_parent_dn(), true, cur, 0, 0, px);
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "mknod");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
journal_allocated_inos(mdr, &le->metablob);
mdcache->predirty_journal_parents(mdr, &le->metablob, newi, dn->get_dir(),
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "mkdir");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
journal_allocated_inos(mdr, &le->metablob);
mdcache->predirty_journal_parents(mdr, &le->metablob, newi, dn->get_dir(), PREDIRTY_PRIMARY|PREDIRTY_DIR, 1);
le->metablob.add_primary_dentry(dn, true, newi);
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "symlink");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
journal_allocated_inos(mdr, &le->metablob);
mdcache->predirty_journal_parents(mdr, &le->metablob, newi, dn->get_dir(), PREDIRTY_PRIMARY|PREDIRTY_DIR, 1);
le->metablob.add_primary_dentry(dn, true, newi);
// log + wait
EUpdate *le = new EUpdate(mdlog, "link_local");
mdlog->start_entry(le);
- le->metablob.add_client_req(mdr->reqid);
+ le->metablob.add_client_req(mdr->reqid, mdr->client_request->get_oldest_client_tid());
mdcache->predirty_journal_parents(mdr, &le->metablob, targeti, dn->get_dir(), PREDIRTY_DIR, 1); // new dn
mdcache->predirty_journal_parents(mdr, &le->metablob, targeti, 0, PREDIRTY_PRIMARY); // targeti
le->metablob.add_remote_dentry(dn, true, targeti->ino(), targeti->d_type()); // new remote
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, inc ? "link_remote":"unlink_remote");
mdlog->start_entry(le);
- le->metablob.add_client_req(mdr->reqid);
+ le->metablob.add_client_req(mdr->reqid, mdr->client_request->get_oldest_client_tid());
if (!mdr->more()->slaves.empty()) {
dout(20) << " noting uncommitted_slaves " << mdr->more()->slaves << dendl;
le->reqid = mdr->reqid;
// prepare log entry
EUpdate *le = new EUpdate(mdlog, "unlink_local");
mdlog->start_entry(le);
- le->metablob.add_client_req(mdr->reqid);
+ le->metablob.add_client_req(mdr->reqid, mdr->client_request->get_oldest_client_tid());
if (straydn) {
assert(dnl->is_primary());
mdr->ls = mdlog->get_current_segment();
EUpdate *le = new EUpdate(mdlog, "rename");
mdlog->start_entry(le);
- le->metablob.add_client_req(mdr->reqid);
+ le->metablob.add_client_req(mdr->reqid, mdr->client_request->get_oldest_client_tid());
if (!mdr->more()->slaves.empty()) {
dout(20) << " noting uncommitted_slaves " << mdr->more()->slaves << dendl;
EUpdate *le = new EUpdate(mdlog, "mksnap");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
le->metablob.add_table_transaction(TABLE_SNAP, stid);
mdcache->predirty_journal_parents(mdr, &le->metablob, diri, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_cow_inode(mdr, &le->metablob, diri);
EUpdate *le = new EUpdate(mdlog, "rmsnap");
mdlog->start_entry(le);
- le->metablob.add_client_req(req->get_reqid());
+ le->metablob.add_client_req(req->get_reqid(), req->get_oldest_client_tid());
le->metablob.add_table_transaction(TABLE_SNAP, stid);
mdcache->predirty_journal_parents(mdr, &le->metablob, diri, 0, PREDIRTY_PRIMARY, false);
mdcache->journal_cow_inode(mdr, &le->metablob, diri);