Hi,
In order to make changes to a shared buffer, one must hold a pin on it
and the content lock in exclusive mode. This rule seems to be
followed in most of the places but there are a few exceptions.
One can find several PageInit() calls with no content lock held. See,
for example:
fill_seq_with_data()
vm_readbuf()
fsm_readbuf()
Moreover, fsm_vacuum_page() performs
"PageGetContents(page))->fp_next_slot = 0;" without content lock.
There may be more but I want to know if these can be treated as
violations before moving ahead.
Asim