Mark Kirkwood <markir(at)coretech(dot)co(dot)nz> writes:
> In addition to holding the BufMappingLock, each buffer header is (spin)
> locked before examining it, hopefully this is correct - BTW, I like the
> new buffer lock design.
It'd be possible to dispense with the per-buffer spinlocks so long as
you look only at the tag (and perhaps the TAG_VALID flag bit). The
tags can't be changing while you hold the BufMappingLock. I'm dubious
that there's any point in recording information as transient as the
refcounts and dirtybits, and reducing the amount of time you hold the
lock would be a Good Thing.
Also, you're still not dealing with the case of a not-valid buffer in a
reasonable way.
regards, tom lane