Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
dirty_old_rstat.clear();
}
-void CDir::decode_import(bufferlist::iterator& blp, utime_t now)
+void CDir::decode_import(bufferlist::iterator& blp, utime_t now, LogSegment *ls)
{
::decode(first, blp);
::decode(fnode, blp);
::decode(s, blp);
state &= MASK_STATE_IMPORT_KEPT;
state |= (s & MASK_STATE_EXPORTED);
- if (is_dirty()) get(PIN_DIRTY);
+ if (is_dirty()) {
+ get(PIN_DIRTY);
+ _mark_dirty(ls);
+ }
::decode(dir_rep, blp);
void abort_export() {
put(PIN_TEMPEXPORTING);
}
- void decode_import(bufferlist::iterator& blp, utime_t now);
+ void decode_import(bufferlist::iterator& blp, utime_t now, LogSegment *ls);
// -- auth pins --
dout(7) << "decode_import_dir " << *dir << dendl;
// assimilate state
- dir->decode_import(blp, now);
+ dir->decode_import(blp, now, ls);
// mark (may already be marked from get_or_open_dir() above)
if (!dir->is_auth())