From 38a773abc69e5eca89de39aba5b988f62f151a91 Mon Sep 17 00:00:00 2001
From: Jakub Wartak <jakub.wartak@enterprisedb.com>
Date: Thu, 30 Apr 2026 12:59:54 +0200
Subject: [PATCH v1] md: measure just FileSync() for pgstat_io without
 FileClose()

Measure just FileSync() duration for IOOP_FSYNC rather than
potentially including additional close() system call duration
too.

Author: Jakub Wartak <jakub.wartak@enterprisedb.com>
Discussion: https://postgr.es/m/XXX
---
 src/backend/storage/smgr/md.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index dee29037b16..5da9a9b06c3 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -1937,12 +1937,12 @@ mdsyncfiletag(const FileTag *ftag, char *path)
 	result = FileSync(file, WAIT_EVENT_DATA_FILE_SYNC);
 	save_errno = errno;
 
-	if (need_to_close)
-		FileClose(file);
-
 	pgstat_count_io_op_time(IOOBJECT_RELATION, IOCONTEXT_NORMAL,
 							IOOP_FSYNC, io_start, 1, 0);
 
+	if (need_to_close)
+		FileClose(file);
+
 	errno = save_errno;
 	return result;
 }
-- 
2.43.0

