diff options
Diffstat (limited to 'src/backend/access/transam/xact.c')
-rw-r--r-- | src/backend/access/transam/xact.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 1b4f21a88d3..b885513f765 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -51,6 +51,7 @@ #include "replication/origin.h" #include "replication/snapbuild.h" #include "replication/syncrep.h" +#include "storage/aio_subsys.h" #include "storage/condition_variable.h" #include "storage/fd.h" #include "storage/lmgr.h" @@ -2411,6 +2412,8 @@ CommitTransaction(void) RESOURCE_RELEASE_BEFORE_LOCKS, true, true); + AtEOXact_Aio(true); + /* Check we've released all buffer pins */ AtEOXact_Buffers(true); @@ -2716,6 +2719,8 @@ PrepareTransaction(void) RESOURCE_RELEASE_BEFORE_LOCKS, true, true); + AtEOXact_Aio(true); + /* Check we've released all buffer pins */ AtEOXact_Buffers(true); @@ -2830,6 +2835,8 @@ AbortTransaction(void) pgstat_report_wait_end(); pgstat_progress_end_command(); + pgaio_error_cleanup(); + /* Clean up buffer content locks, too */ UnlockBuffers(); @@ -2960,6 +2967,7 @@ AbortTransaction(void) ResourceOwnerRelease(TopTransactionResourceOwner, RESOURCE_RELEASE_BEFORE_LOCKS, false, true); + AtEOXact_Aio(false); AtEOXact_Buffers(false); AtEOXact_RelationCache(false); AtEOXact_TypeCache(); @@ -5232,6 +5240,9 @@ AbortSubTransaction(void) pgstat_report_wait_end(); pgstat_progress_end_command(); + + pgaio_error_cleanup(); + UnlockBuffers(); /* Reset WAL record construction state */ @@ -5326,6 +5337,7 @@ AbortSubTransaction(void) RESOURCE_RELEASE_BEFORE_LOCKS, false, false); + AtEOXact_Aio(false); AtEOSubXact_RelationCache(false, s->subTransactionId, s->parent->subTransactionId); AtEOSubXact_TypeCache(); |