index c31a523857d3faa14b7450a8b215d2fdf0d8c89d..78c7d41ac48d95d6648baa3951563ba9e4ad3496 100644 (file)
@@ -128,9 +128,15 @@ int max_safe_fds = 32; /* default if not changed */
/* Debugging.... */
#ifdef FDDEBUG
-#define DO_DB(A) A
+#define DO_DB(A) \
+ do { \
+ int _do_db_save_errno = errno; \
+ A; \
+ errno = _do_db_save_errno; \
+ } while (0)
#else
-#define DO_DB(A) /* A */
+#define DO_DB(A) \
+ ((void) 0)
#endif
#define VFD_CLOSED (-1)
if (vfdP->fd < 0)
{
DO_DB(elog(LOG, "RE_OPEN FAILED: %d", errno));
- return vfdP->fd;
+ return -1;
}
else
{
Index i;
File file;
- DO_DB(elog(LOG, "AllocateVfd. Size %lu", SizeVfdCache));
+ DO_DB(elog(LOG, "AllocateVfd. Size %lu", (unsigned long) SizeVfdCache));
Assert(SizeVfdCache > 0); /* InitFileAccess not called? */
@@ -911,8 +917,11 @@ PathNameOpenFile(FileName fileName, int fileFlags, int fileMode)
if (vfdP->fd < 0)
{
+ int save_errno = errno;
+
FreeVfd(file);
free(fnamecopy);
+ errno = save_errno;
return -1;
}
++nfile;
@@ -1554,7 +1563,6 @@ OpenTransientFile(FileName fileName, int fileFlags, int fileMode)
{
int fd;
-
DO_DB(elog(LOG, "OpenTransientFile: Allocated %d (%s)",
numAllocatedDescs, fileName));