void Server::journal_allocated_inos(MDRequest *mdr, EMetaBlob *blob)
{
+ dout(20) << "journal_allocated_inos" << dendl;
blob->set_ino_alloc(mdr->alloc_ino,
mdr->used_prealloc_ino,
mdr->prealloc_inos,
off_t my_offset;
// for replay, in certain cases
- LogSegment *_segment;
+ //LogSegment *_segment;
- EMetaBlob() : opened_ino(0),
- inotablev(0), allocated_ino(0),
- last_subtree_map(0), my_offset(0), _segment(0) { }
- EMetaBlob(MDLog *mdl); // defined in journal.cc
+ EMetaBlob(MDLog *mdl = 0); // defined in journal.cc
void print(ostream& out) {
for (list<dirfrag_t>::iterator p = lump_order.begin();
// -----------------------
// EMetaBlob
-EMetaBlob::EMetaBlob(MDLog *mdlog) :
- last_subtree_map(mdlog->get_last_segment_offset()),
- my_offset(mdlog->get_write_pos())
-{
-}
+EMetaBlob::EMetaBlob(MDLog *mdlog) : opened_ino(0),
+ inotablev(0), sessionmapv(0),
+ allocated_ino(0),
+ last_subtree_map(mdlog ? mdlog->get_last_segment_offset() : 0),
+ my_offset(mdlog ? mdlog->get_write_pos() : 0) //, _segment(0)
+{ }
void EMetaBlob::update_segment(LogSegment *ls)
{
{
dout(10) << "EMetaBlob.replay " << lump_map.size() << " dirlumps" << dendl;
- if (!logseg) logseg = _segment;
+ //if (!logseg) logseg = _segment;
assert(logseg);
// walk through my dirs (in order!)
CInode *in = mds->mdcache->get_inode(opened_ino);
assert(in);
dout(10) << "EMetaBlob.replay noting opened inode " << *in << dendl;
- _segment->open_files.push_back(&in->xlist_open_file);
+ logseg->open_files.push_back(&in->xlist_open_file);
}
// allocated_inos