diff options
Diffstat (limited to 'src/mds/journal.cc')
-rw-r--r-- | src/mds/journal.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mds/journal.cc b/src/mds/journal.cc index ece1156fc58..41a79f9fb38 100644 --- a/src/mds/journal.cc +++ b/src/mds/journal.cc @@ -119,6 +119,14 @@ void LogSegment::try_to_expire(MDS *mds, C_GatherBuilder &gather_bld) mds->mdcache->wait_for_uncommitted_master(*p, gather_bld.new_sub()); } + // uncommitted fragments + for (set<dirfrag_t>::iterator p = uncommitted_fragments.begin(); + p != uncommitted_fragments.end(); + ++p) { + dout(10) << "try_to_expire waiting for uncommitted fragment " << *p << dendl; + mds->mdcache->wait_for_uncommitted_fragment(*p, gather_bld.new_sub()); + } + // nudge scatterlocks for (elist<CInode*>::iterator p = dirty_dirfrag_dir.begin(); !p.end(); ++p) { CInode *in = *p; @@ -2390,7 +2398,7 @@ void EFragment::replay(MDS *mds) switch (op) { case OP_PREPARE: - mds->mdcache->add_uncommitted_fragment(dirfrag_t(ino, basefrag), bits, orig_frags, &rollback); + mds->mdcache->add_uncommitted_fragment(dirfrag_t(ino, basefrag), bits, orig_frags, _segment, &rollback); // fall-thru case OP_ONESHOT: if (in) |