diff --git a/src/backend/access/transam/twophase.c b/src/backend/access/transam/twophase.c
index 7fbf605761b96544b81b10ba2bcc7ce08bf899e2..e8fb78b33119bc3449fdc2a70977eabd87fdf623 100644
--- a/src/backend/access/transam/twophase.c
+++ b/src/backend/access/transam/twophase.c
@@ -58,6 +58,7 @@
 #include "replication/syncrep.h"
 #include "storage/fd.h"
 #include "storage/predicate.h"
+#include "storage/proc.h"
 #include "storage/procarray.h"
 #include "storage/sinvaladt.h"
 #include "storage/smgr.h"
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 4ba13e18abb22d5aa0d7afb90c645f5e24cfc6d7..4755ee6ee4081895073ce373e8092b129a9c55fb 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -40,6 +40,7 @@
 #include "replication/syncrep.h"
 #include "storage/lmgr.h"
 #include "storage/predicate.h"
+#include "storage/proc.h"
 #include "storage/procarray.h"
 #include "storage/sinvaladt.h"
 #include "storage/smgr.h"
diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c
index 7e04e08545a5286baf6eca22e5fa3e202bb61b8e..e8330e9a0cff99000311a0cdaef4d02433fd4ddb 100644
--- a/src/backend/storage/ipc/ipci.c
+++ b/src/backend/storage/ipc/ipci.c
@@ -33,6 +33,7 @@
 #include "storage/pg_shmem.h"
 #include "storage/pmsignal.h"
 #include "storage/predicate.h"
+#include "storage/proc.h"
 #include "storage/procarray.h"
 #include "storage/procsignal.h"
 #include "storage/sinvaladt.h"
diff --git a/src/backend/storage/ipc/procarray.c b/src/backend/storage/ipc/procarray.c
index a3b0540aea73655014c9bcaddb83890a498d9acc..fad95ca7ceebac683c7a01a09b98d8f35735ea3c 100644
--- a/src/backend/storage/ipc/procarray.c
+++ b/src/backend/storage/ipc/procarray.c
@@ -51,6 +51,7 @@
 #include "access/xact.h"
 #include "access/twophase.h"
 #include "miscadmin.h"
+#include "storage/proc.h"
 #include "storage/procarray.h"
 #include "storage/spin.h"
 #include "utils/builtins.h"
diff --git a/src/backend/storage/lmgr/lock.c b/src/backend/storage/lmgr/lock.c
index 98fc02529e31a715fa1dcad87638b96565922317..891dfa9e7bd39fa932e3b624ff943229f41a193a 100644
--- a/src/backend/storage/lmgr/lock.c
+++ b/src/backend/storage/lmgr/lock.c
@@ -38,6 +38,7 @@
 #include "miscadmin.h"
 #include "pg_trace.h"
 #include "pgstat.h"
+#include "storage/proc.h"
 #include "storage/sinvaladt.h"
 #include "storage/spin.h"
 #include "storage/standby.h"
diff --git a/src/backend/storage/lmgr/predicate.c b/src/backend/storage/lmgr/predicate.c
index 0c3c7f089bf27c154a4656cd462512140170dadc..b22faf9607d87f1a2bc7ce306e923dc12b8cfcc7 100644
--- a/src/backend/storage/lmgr/predicate.c
+++ b/src/backend/storage/lmgr/predicate.c
@@ -193,6 +193,7 @@
 #include "storage/bufmgr.h"
 #include "storage/predicate.h"
 #include "storage/predicate_internals.h"
+#include "storage/proc.h"
 #include "storage/procarray.h"
 #include "utils/rel.h"
 #include "utils/snapmgr.h"
diff --git a/src/backend/utils/init/postinit.c b/src/backend/utils/init/postinit.c
index 1baa67da9ff8b3e666b6404944e54537b599067e..4d4a895657ed8c67707340efa662c89a25df226f 100644
--- a/src/backend/utils/init/postinit.c
+++ b/src/backend/utils/init/postinit.c
@@ -44,6 +44,7 @@
 #include "storage/proc.h"
 #include "storage/procarray.h"
 #include "storage/procsignal.h"
+#include "storage/proc.h"
 #include "storage/sinvaladt.h"
 #include "storage/smgr.h"
 #include "tcop/tcopprot.h"
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index b756e58a3690eb05ab12b0ca2e1c12c0b2d743d8..965d3252fd82b4f82f57c24fa25ea7bd213a483b 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -62,6 +62,7 @@
 #include "storage/bufmgr.h"
 #include "storage/standby.h"
 #include "storage/fd.h"
+#include "storage/proc.h"
 #include "storage/predicate.h"
 #include "tcop/tcopprot.h"
 #include "tsearch/ts_cache.h"
diff --git a/src/include/access/twophase.h b/src/include/access/twophase.h
index 8314f85d5d7921dd2372bf4ed5b1df9c9970e5fe..19be980659f5968a1cb7067527daacc1ebe783ce 100644
--- a/src/include/access/twophase.h
+++ b/src/include/access/twophase.h
@@ -14,7 +14,9 @@
 #ifndef TWOPHASE_H
 #define TWOPHASE_H
 
-#include "storage/proc.h"
+#include "access/xlogdefs.h"
+#include "datatype/timestamp.h"
+#include "storage/lock.h"
 
 /*
  * GlobalTransactionData is defined in twophase.c; other places have no
diff --git a/src/include/storage/proc.h b/src/include/storage/proc.h
index 71413aaf5910b21c7e8bd467e2cdeb08387552be..31f7099a635b12886444fa30c18ac9ebc62e73b1 100644
--- a/src/include/storage/proc.h
+++ b/src/include/storage/proc.h
@@ -14,7 +14,7 @@
 #ifndef _PROC_H_
 #define _PROC_H_
 
-#include "access/xlog.h"
+#include "access/xlogdefs.h"
 #include "datatype/timestamp.h"
 #include "storage/latch.h"
 #include "storage/lock.h"
diff --git a/src/include/storage/sinvaladt.h b/src/include/storage/sinvaladt.h
index 722cc00d59389383d12759b158e9e82cbb9a549a..3e7b35f1b308de82faf553535d6198f604087d75 100644
--- a/src/include/storage/sinvaladt.h
+++ b/src/include/storage/sinvaladt.h
@@ -22,7 +22,7 @@
 #ifndef SINVALADT_H
 #define SINVALADT_H
 
-#include "storage/proc.h"
+#include "storage/lock.h"
 #include "storage/sinval.h"
 
 /*