slru_io_memory.diff
application/octet-stream
Filename: slru_io_memory.diff
Type: application/octet-stream
Part: 0
Message:
Re: POC: make mxidoff 64 bits
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: unified
| File | + | − |
|---|---|---|
| src/bin/pg_upgrade/slru_io.c | 15 | 6 |
diff --git a/src/bin/pg_upgrade/slru_io.c b/src/bin/pg_upgrade/slru_io.c
index ae3e224d7b1..ed79124c6d5 100644
--- a/src/bin/pg_upgrade/slru_io.c
+++ b/src/bin/pg_upgrade/slru_io.c
@@ -19,6 +19,7 @@
#include "slru_io.h"
static SlruSegState *AllocSlruSegState(const char *dir);
+static void FreeSlruSegState(SlruSegState *state);
static char *SlruFileName(SlruSegState *state, int64 segno);
static void SlruFlush(SlruSegState *state);
@@ -69,6 +70,18 @@ AllocSlruRead(const char *dir, bool long_segment_names)
return state;
}
+static void
+FreeSlruSegState(SlruSegState *state)
+{
+ if (state->fd != -1)
+ close(state->fd);
+ if (state->fn)
+ pg_free(state->fn);
+ if (state->dir)
+ pg_free(state->dir);
+ pg_free(state);
+}
+
/*
* Read the given page into memory buffer.
*
@@ -154,9 +167,7 @@ FreeSlruRead(SlruSegState *state)
{
Assert(!state->writing); /* read only mode */
- if (state->fd != -1)
- close(state->fd);
- pg_free(state);
+ FreeSlruSegState(state);
}
/*
@@ -263,7 +274,5 @@ FreeSlruWrite(SlruSegState *state)
SlruFlush(state);
- if (state->fd != -1)
- close(state->fd);
- pg_free(state);
+ FreeSlruSegState(state);
}