void link_remote_inode( CDentry *dn, inodeno_t ino, unsigned char d_type);
void link_remote_inode( CDentry *dn, CInode *in );
void link_primary_inode( CDentry *dn, CInode *in );
- void unlink_inode( CDentry *dn );
+ void unlink_inode(CDentry *dn, bool adjust_lru=true);
void try_remove_unlinked_dn(CDentry *dn);
void add_to_bloom(CDentry *dn);
void remove_null_dentries();
void purge_stale_snap_data(const std::set<snapid_t>& snaps);
public:
- void touch_dentries_bottom();
void try_remove_dentries_for_stray();
bool try_trim_snap_dentry(CDentry *dn, const std::set<snapid_t>& snaps);
private:
void prepare_new_fragment(bool replay);
- void prepare_old_fragment(bool replay);
+ void prepare_old_fragment(map<string_snap_t, std::list<MDSInternalContextBase*> >& dentry_waiters, bool replay);
void steal_dentry(CDentry *dn); // from another dir. used by merge/split.
void finish_old_fragment(list<MDSInternalContextBase*>& waiters, bool replay);
void init_fragment_pins();