From f9471de69c00a99eb3dd3bc87292a5808fb1f702 Mon Sep 17 00:00:00 2001 From: Zhao Junwang Date: Thu, 1 Aug 2024 12:23:10 +0000 Subject: [PATCH v2] remove duplicated smgrclose Remove redundant `smgrclose` calls after `smgrdounlinkall`. The `smgrdounlinkall` now handles all necessary cleanup, making additional closes unnecessary. Author: Steven Niu Reviewed-by: Junwang Zhao --- src/backend/catalog/storage.c | 3 --- src/backend/storage/smgr/md.c | 2 -- src/backend/storage/smgr/smgr.c | 4 +--- src/backend/utils/cache/relcache.c | 1 - 4 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/backend/catalog/storage.c b/src/backend/catalog/storage.c index f56b3cc0f2..6c6f895e33 100644 --- a/src/backend/catalog/storage.c +++ b/src/backend/catalog/storage.c @@ -686,9 +686,6 @@ smgrDoPendingDeletes(bool isCommit) { smgrdounlinkall(srels, nrels, false); - for (int i = 0; i < nrels; i++) - smgrclose(srels[i]); - pfree(srels); } } diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c index 6796756358..1d1d1d6f86 100644 --- a/src/backend/storage/smgr/md.c +++ b/src/backend/storage/smgr/md.c @@ -1465,8 +1465,6 @@ DropRelationFiles(RelFileLocator *delrels, int ndelrels, bool isRedo) smgrdounlinkall(srels, ndelrels, isRedo); - for (i = 0; i < ndelrels; i++) - smgrclose(srels[i]); pfree(srels); } diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c index 7b9fa103ef..2356b2ff1c 100644 --- a/src/backend/storage/smgr/smgr.c +++ b/src/backend/storage/smgr/smgr.c @@ -482,13 +482,11 @@ smgrdounlinkall(SMgrRelation *rels, int nrels, bool isRedo) for (i = 0; i < nrels; i++) { RelFileLocatorBackend rlocator = rels[i]->smgr_rlocator; - int which = rels[i]->smgr_which; rlocators[i] = rlocator; /* Close the forks at smgr level */ - for (forknum = 0; forknum <= MAX_FORKNUM; forknum++) - smgrsw[which].smgr_close(rels[i], forknum); + smgrclose(rels[i]); } /* diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 66ed24e401..b64676970c 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -3842,7 +3842,6 @@ RelationSetNewRelfilenumber(Relation relation, char persistence) */ srel = smgropen(relation->rd_locator, relation->rd_backend); smgrdounlinkall(&srel, 1, false); - smgrclose(srel); } else { -- 2.39.2