diff --git a/src/mds/Server.cc b/src/mds/Server.cc index 46adf220021..4afe10d693f 100644 --- a/src/mds/Server.cc +++ b/src/mds/Server.cc @@ -6210,9 +6210,12 @@ void Server::_rename_prepare(MDRequest *mdr, // guarantee stray dir is processed first during journal replay. unlink the old inode, // then link the source inode to destdn - if (destdnl->is_primary() && straydn->is_auth()) { - metablob->add_dir_context(straydn->get_dir()); - metablob->add_dir(straydn->get_dir(), true); + if (destdnl->is_primary()) { + assert(straydn); + if (straydn->is_auth()) { + metablob->add_dir_context(straydn->get_dir()); + metablob->add_dir(straydn->get_dir(), true); + } } // sub off target