diff --git a/lustre/liblustre/namei.c b/lustre/liblustre/namei.c index a9bd06723ae1706fe02a480fc4dcfd8ee4d90f06..1f23df942871a767fd9b5d8ca242cb40d9ac1bc0 100644 --- a/lustre/liblustre/namei.c +++ b/lustre/liblustre/namei.c @@ -290,10 +290,8 @@ int llu_pb_revalidate(struct pnode *pnode, int flags, struct lookup_intent *it) ptlrpc_req_finished(req); if (rc == 0) { LASSERT(pb->pb_ino); - if (S_ISDIR(llu_i2info(pb->pb_ino)->lli_st_mode)) - llu_invalidate_inode_pages(pb->pb_ino); - llu_i2info(pb->pb_ino)->lli_stale_flag = 1; - unhook_stale_inode(pnode); + I_RELE(pb->pb_ino); + pb->pb_ino = NULL; } else { llu_lookup_finish_locks(it, pnode); llu_i2info(pb->pb_ino)->lli_stale_flag = 0; diff --git a/lustre/liblustre/super.c b/lustre/liblustre/super.c index 82ab7ca0d27f42ad90cb53712b2e4c469086ec76..392e22ac8cb68d5b5d6f4bf9430571f9d4fc6b4a 100644 --- a/lustre/liblustre/super.c +++ b/lustre/liblustre/super.c @@ -1239,7 +1239,7 @@ struct inode *llu_iget(struct filesys *fs, struct lustre_md *md) struct llu_inode_info *lli = llu_i2info(inode); if (lli->lli_stale_flag || - lli->lli_st_generation == md->body->generation) + lli->lli_st_generation != md->body->generation) I_RELE(inode); else { llu_update_inode(inode, md->body, md->lsm);