mirror of
https://github.com/postgres/postgres.git
synced 2025-05-28 05:21:27 +03:00
smgr: Make SMgrRelation initialization safer against errors
In case the smgr_open callback failed, the ->pincount field would not be initialized and the relation would not be put onto the unpinned_relns list. This buglet was introduced in 21d9c3ee4ef7, in 17. Discussion: https://postgr.es/m/3vae7l5ozvqtxmd7rr7zaeq3qkuipz365u3rtim5t5wdkr6f4g@vkgf2fogjirl Backpatch-through: 17
This commit is contained in:
parent
09ef2f8df1
commit
ee578921b6
@ -231,12 +231,12 @@ smgropen(RelFileLocator rlocator, ProcNumber backend)
|
||||
reln->smgr_cached_nblocks[i] = InvalidBlockNumber;
|
||||
reln->smgr_which = 0; /* we only have md.c at present */
|
||||
|
||||
/* implementation-specific initialization */
|
||||
smgrsw[reln->smgr_which].smgr_open(reln);
|
||||
|
||||
/* it is not pinned yet */
|
||||
reln->pincount = 0;
|
||||
dlist_push_tail(&unpinned_relns, &reln->node);
|
||||
|
||||
/* implementation-specific initialization */
|
||||
smgrsw[reln->smgr_which].smgr_open(reln);
|
||||
}
|
||||
|
||||
return reln;
|
||||
|
Loading…
x
Reference in New Issue
Block a user