diff --git a/lustre/llite/dcache.c b/lustre/llite/dcache.c
index 6959df50a831470371142fb6a4e55dab065b944d..2a1a78a651e6572cdc74beb6754b5d879099c140 100644
--- a/lustre/llite/dcache.c
+++ b/lustre/llite/dcache.c
@@ -524,9 +524,13 @@ do_lookup:
                 struct mds_body *mds_body = lustre_msg_buf(req->rq_repmsg,
                                                            DLM_REPLY_REC_OFF,
                                                            sizeof(*mds_body));
+                struct ll_fid fid = { 0 };
+
+                if (de->d_inode)
+                         ll_inode2fid(&fid, de->d_inode);
+
                 /* see if we got same inode, if not - return error */
-                if(!memcmp(&op_data.fid2, &mds_body->fid1,
-                           sizeof(op_data.fid2)))
+                if(!memcmp(&fid, &mds_body->fid1, sizeof(struct ll_fid)))
                         goto revalidate_finish;
                 ll_intent_release(it);
         }