Signed-off-by: "Yan, Zheng" <zyan@redhat.com>
}
} else {
info.checking = peer;
- mds->send_message_mds(new MMDSOpenIno(info.tid, ino, info.ancestors), peer);
+ vector<inode_backpointer_t> *pa = NULL;
+ // got backtrace from peer or backtrace just fetched
+ if (info.discover || !info.fetch_backtrace)
+ pa = &info.ancestors;
+ mds->send_message_mds(new MMDSOpenIno(info.tid, ino, pa), peer);
}
}
vector<inode_backpointer_t> ancestors;
MMDSOpenIno() : Message(MSG_MDS_OPENINO) {}
- MMDSOpenIno(ceph_tid_t t, inodeno_t i, vector<inode_backpointer_t>& a) :
- Message(MSG_MDS_OPENINO), ino(i), ancestors(a) {
+ MMDSOpenIno(ceph_tid_t t, inodeno_t i, vector<inode_backpointer_t>* pa) :
+ Message(MSG_MDS_OPENINO), ino(i) {
header.tid = t;
+ if (pa)
+ ancestors = *pa;
}
const char *get_type_name() const override { return "openino"; }