diff --git a/lustre/mds/mds_open.c b/lustre/mds/mds_open.c index 28bc8e9ac8aa5a7edc55198bbeac141025cbe73b..51efdeaec8e25b9637d1a27cd593533b04974da8 100644 --- a/lustre/mds/mds_open.c +++ b/lustre/mds/mds_open.c @@ -747,6 +747,7 @@ static int mds_open_by_id(struct ptlrpc_request *req, RETURN(rc); } + up(&pending_dir->i_sem); if (dchild->d_inode != NULL) { mds_inode_set_orphan(dchild->d_inode); mds_pack_inode2body(req2obd(req), body,