diff --git a/src/backend/storage/file/fd.c b/src/backend/storage/file/fd.c
index b58502837a..593c23553e 100644
--- a/src/backend/storage/file/fd.c
+++ b/src/backend/storage/file/fd.c
@@ -3374,7 +3374,9 @@ walkdir(const char *path,
 	{
 		char		subpath[MAXPGPATH * 2];
 
-		CHECK_FOR_INTERRUPTS();
+		/* omit interrupts while we shouldn't error-out */
+		if (elevel >= ERROR)
+			CHECK_FOR_INTERRUPTS();
 
 		if (strcmp(de->d_name, ".") == 0 ||
 			strcmp(de->d_name, "..") == 0)
=====
