Do not reuse rd_smgr in fork loop when enabling data checksums

ProcessSingleRelationByOid called RelationGetSmgr(rel), discarded the
result, and then read rel->rd_smgr directly when looping over forks.
Only RelationGetSmgr is authorized to read that field since a relcache
invalidation resets rd_smgr to NULL.

Backpatch to v19 where online checksums were introduced.

Author: Mihail Nikalayeu <[email protected]>
Reviewed-by: ChangAo Chen <[email protected]>
Reviewed-by: Fujii Masao <[email protected]>
Discussion: 
https://postgr.es/m/CADzfLwXGvb4Y-mqy8T+O0f_tkXR1sTDBGzP5Z=v_qcgnz46...@mail.gmail.com
Backpatch-through: 19

Branch
------
REL_19_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/01805b7d16b9a06d5223071215db0337bc8e6d92

Modified Files
--------------
src/backend/postmaster/datachecksum_state.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

Reply via email to