From 26a08f31f7965afb062b027a4455620b52e7a67e Mon Sep 17 00:00:00 2001 From: Patrick Donnelly Date: Mon, 17 Apr 2017 22:33:19 -0400 Subject: [PATCH] mds: check projected parent to avoid unsafe access An anonymous inode may not have a stable parent so immediate migration would cause a segfault when checking for strays. Signed-off-by: Patrick Donnelly --- src/mds/Migrator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mds/Migrator.cc b/src/mds/Migrator.cc index f375c086ff09..4a508256fccf 100644 --- a/src/mds/Migrator.cc +++ b/src/mds/Migrator.cc @@ -781,7 +781,7 @@ void Migrator::export_dir(CDir *dir, mds_rank_t dest) return; } - if (!dir->inode->is_base() && dir->get_parent_dir()->get_inode()->is_stray() && + if (!dir->inode->is_base() && dir->get_inode()->get_projected_parent_dir()->get_inode()->is_stray() && dir->get_parent_dir()->get_parent_dir()->ino() != MDS_INO_MDSDIR(dest)) { dout(7) << "i won't export anything in stray" << dendl; return; -- 2.47.3