diff --git a/src/backend/utils/cache/relfilenodemap.c b/src/backend/utils/cache/relfilenodemap.c
index 2a8f83775d26c6daa3f2a2ac2891ee2c4b81dafc..f3f9a098996a9f1c3eadca8248a0591fcefcd026 100644
--- a/src/backend/utils/cache/relfilenodemap.c
+++ b/src/backend/utils/cache/relfilenodemap.c
@@ -180,6 +180,9 @@ RelidByRelfilenode(Oid reltablespace, Oid relfilenode)
 	if (found)
 		return entry->relid;
 
+	/* initialize empty/negative cache entry before doing the actual lookup */
+	entry->relid = InvalidOid;
+
 	/* ok, no previous cache entry, do it the hard way */
 
 	/* check shared tables */