diff --git a/src/include/access/xlog.h b/src/include/access/xlog.h
index d12798be3d80..9b6a042a607c 100644
--- a/src/include/access/xlog.h
+++ b/src/include/access/xlog.h
@@ -201,7 +201,6 @@ struct XLogReaderState;
 extern XLogRecPtr XLogInsertRecord(struct XLogRecData *rdata,
 								   XLogRecPtr fpw_lsn,
 								   uint8 flags,
-								   int num_fpi,
 								   bool topxid_included);
 extern void XLogFlush(XLogRecPtr record);
 extern bool XLogBackgroundFlush(void);
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index eceab3412558..bc1627286539 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -748,7 +748,6 @@ XLogRecPtr
 XLogInsertRecord(XLogRecData *rdata,
 				 XLogRecPtr fpw_lsn,
 				 uint8 flags,
-				 int num_fpi,
 				 bool topxid_included)
 {
 	XLogCtlInsert *Insert = &XLogCtl->Insert;
@@ -1080,7 +1079,6 @@ XLogInsertRecord(XLogRecData *rdata,
 	{
 		pgWalUsage.wal_bytes += rechdr->xl_tot_len;
 		pgWalUsage.wal_records++;
-		pgWalUsage.wal_fpi += num_fpi;
 
 		/* Required for the flush of pending stats WAL data */
 		pgstat_report_fixed = true;
diff --git a/src/backend/access/transam/xloginsert.c b/src/backend/access/transam/xloginsert.c
index b3abf386f801..6b47c13a2c25 100644
--- a/src/backend/access/transam/xloginsert.c
+++ b/src/backend/access/transam/xloginsert.c
@@ -138,7 +138,7 @@ static MemoryContext xloginsert_cxt;
 
 static XLogRecData *XLogRecordAssemble(RmgrId rmid, uint8 info,
 									   XLogRecPtr RedoRecPtr, bool doPageWrites,
-									   XLogRecPtr *fpw_lsn, int *num_fpi,
+									   XLogRecPtr *fpw_lsn,
 									   bool *topxid_included);
 static bool XLogCompressBackupBlock(const PageData *page, uint16 hole_offset,
 									uint16 hole_length, void *dest, uint16 *dlen);
@@ -511,7 +511,6 @@ XLogInsert(RmgrId rmid, uint8 info)
 		bool		topxid_included = false;
 		XLogRecPtr	fpw_lsn;
 		XLogRecData *rdt;
-		int			num_fpi = 0;
 
 		/*
 		 * Get values needed to decide whether to do full-page writes. Since
@@ -521,9 +520,9 @@ XLogInsert(RmgrId rmid, uint8 info)
 		GetFullPageWriteInfo(&RedoRecPtr, &doPageWrites);
 
 		rdt = XLogRecordAssemble(rmid, info, RedoRecPtr, doPageWrites,
-								 &fpw_lsn, &num_fpi, &topxid_included);
+								 &fpw_lsn, &topxid_included);
 
-		EndPos = XLogInsertRecord(rdt, fpw_lsn, curinsert_flags, num_fpi,
+		EndPos = XLogInsertRecord(rdt, fpw_lsn, curinsert_flags,
 								  topxid_included);
 	} while (EndPos == InvalidXLogRecPtr);
 
@@ -562,7 +561,7 @@ XLogSimpleInsertInt64(RmgrId rmid, uint8 info, int64 value)
 static XLogRecData *
 XLogRecordAssemble(RmgrId rmid, uint8 info,
 				   XLogRecPtr RedoRecPtr, bool doPageWrites,
-				   XLogRecPtr *fpw_lsn, int *num_fpi, bool *topxid_included)
+				   XLogRecPtr *fpw_lsn, bool *topxid_included)
 {
 	XLogRecData *rdt;
 	uint64		total_len = 0;
@@ -715,9 +714,6 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
 			 */
 			bkpb.fork_flags |= BKPBLOCK_HAS_IMAGE;
 
-			/* Report a full page image constructed for the WAL record */
-			*num_fpi += 1;
-
 			/*
 			 * Construct XLogRecData entries for the page content.
 			 */
@@ -799,6 +795,8 @@ XLogRecordAssemble(RmgrId rmid, uint8 info,
 
 			total_len += bimg.length;
 
+			/* Report a full page image constructed for the WAL record */
+			pgWalUsage.wal_fpi += 1;
 			/* Track the WAL full page images in bytes */
 			pgWalUsage.wal_fpi_bytes += bimg.length;
 			pgstat_report_fixed = true;
