postgresql/src/include/storage
Thomas Munro f94e9141a0 Add file_extend_method=posix_fallocate,write_zeros.
Provide a way to disable the use of posix_fallocate() for relation
files.  It was introduced by commit 4d330a61bb.  The new setting
file_extend_method=write_zeros can be used as a workaround for problems
reported from the field:

 * BTRFS compression is disabled by the use of posix_fallocate()
 * XFS could produce spurious ENOSPC errors in some Linux kernel
   versions, though that problem is reported to have been fixed

The default is file_extend_method=posix_fallocate if available, as
before.  The write_zeros option is similar to PostgreSQL < 16, except
that now it's multi-block.

Backpatch-through: 16
Reviewed-by: Jakub Wartak <jakub.wartak@enterprisedb.com>
Reported-by: Dimitrios Apostolou <jimis@gmx.net>
Discussion: https://postgr.es/m/b1843124-fd22-e279-a31f-252dffb6fbf2%40gmx.net
2026-02-06 17:38:49 +13:00
..
.gitignore When trace_lwlocks is used, identify individual lwlocks by name. 2015-09-11 14:01:39 -04:00
aio.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
aio_internal.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
aio_subsys.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
aio_types.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
barrier.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
block.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
buf.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
buf_internals.h bufmgr: Implement buffer content locks independently of lwlocks 2026-01-15 14:26:53 -05:00
buffile.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
bufmgr.h bufmgr: Implement buffer content locks independently of lwlocks 2026-01-15 14:26:53 -05:00
bufpage.h Remove bogus const qualifier on PageGetItem() argument 2026-01-04 16:00:15 +01:00
bulk_write.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
checksum.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
checksum_impl.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
condition_variable.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
copydir.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
dsm.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
dsm_impl.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
dsm_registry.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
fd.h Add file_extend_method=posix_fallocate,write_zeros. 2026-02-06 17:38:49 +13:00
fileset.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
freespace.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
fsm_internals.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
indexfsm.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
io_worker.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
ipc.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
itemid.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
itemptr.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
large_object.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
latch.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
lmgr.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
lock.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
lockdefs.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
lwlock.h lwlock: Remove support for disowned lwlwocks 2026-01-15 14:57:45 -05:00
lwlocklist.h bufmgr: Implement buffer content locks independently of lwlocks 2026-01-15 14:26:53 -05:00
md.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
meson.build Update copyright for 2026 2026-01-01 13:24:10 -05:00
off.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pg_sema.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
pg_shmem.h Move shmem allocator's fields from PGShmemHeader to its own struct 2026-01-30 18:22:56 +02:00
pmsignal.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
predicate.h Fix typos and inconsistencies in code and comments 2026-01-05 09:19:15 +09:00
predicate_internals.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
proc.h Add backendType to PGPROC, replacing isRegularBackend 2026-02-04 13:06:04 +02:00
procarray.h Remove useless errdetail_abort() 2026-02-03 15:08:13 +02:00
proclist.h Rename AssertVariableIsOfType to StaticAssertVariableIsOfType 2026-02-03 08:45:24 +01:00
proclist_types.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
procnumber.h bufmgr: Change BufferDesc.state to be a 64-bit atomic 2026-01-15 14:20:41 -05:00
procsignal.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
read_stream.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
reinit.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
relfilelocator.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
s_lock.h In s_lock.h, use regular labels with %= instead of local labels. 2026-02-02 11:13:38 -05:00
sharedfileset.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
shm_mq.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
shm_toc.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
shmem.h Move shmem allocator's fields from PGShmemHeader to its own struct 2026-01-30 18:22:56 +02:00
sinval.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
sinvaladt.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
smgr.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
spin.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
standby.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
standbydefs.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
sync.h Update copyright for 2026 2026-01-01 13:24:10 -05:00
waiteventset.h Update copyright for 2026 2026-01-01 13:24:10 -05:00