zfs/tests/runfiles
David Hedberg 9b17d5a37d Wait for txg sync if the last DRR_FREEOBJECTS might result in a hole
If we receive a DRR_FREEOBJECTS as the first entry in an object range,
this might end up producing a hole if the freed objects were the
only existing objects in the block.

If the txg starts syncing before we've processed any following
DRR_OBJECT records, this leads to a possible race where the backing
arc_buf_t gets its psize set to 0 in the arc_write_ready() callback
while still being referenced from a dirty record in the open txg.

To prevent this, we insert a txg_wait_synced call if the first
record in the range was a DRR_FREEOBJECTS that actually
resulted in one or more freed objects.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: David Hedberg <david.hedberg@findity.com>
Sponsored by: Findity AB
Closes #11893
Closes #14358
2023-05-09 12:57:56 -07:00
..
Makefile.am Add sanity.run file 2020-12-03 10:49:39 -08:00
common.run Wait for txg sync if the last DRR_FREEOBJECTS might result in a hole 2023-05-09 12:57:56 -07:00
freebsd.run ZTS: Add tests for DOS mode attributes 2021-03-16 15:00:14 -07:00
linux.run Corrected oversight in ZERO_RANGE behavior 2022-04-21 16:58:07 -07:00
longevity.run OpenZFS 9166 - zfs storage pool checkpoint 2018-06-26 10:07:42 -07:00
perf-regression.run OpenZFS 9184 - Add ZFS performance test for fixed blocksize random read/write IO 2018-07-02 13:46:06 -07:00
sanity.run Wait for txg sync if the last DRR_FREEOBJECTS might result in a hole 2023-05-09 12:57:56 -07:00
sunos.run ZTS: Add a failsafe callback to run after each test 2020-03-10 11:00:56 -07:00