mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-10-24 17:05:01 +03:00
Implementation of DDT pruning introduced verification of DVAs in a block pointer during ddt_lookup() to not by mistake free previous pruned incarnation of the entry. But when writing a new block in zio_ddt_write() we might have the DVAs only from override pointer, which may never have "D" flag to be confused with pruned DDT entry, and we'll abandon those DVAs if we find a matching entry in DDT. This fixes deduplication for blocks written via dmu_sync() for purposes of indirect ZIL write records, that I have tested. And I suspect it might actually allow deduplication for Direct I/O, even though in an odd way -- first write block directly and then delete it later during TXG commit if found duplicate, which part I haven't tested. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #17120 |
||
|---|---|---|
| .. | ||
| raidz_test | ||
| zdb | ||
| zed | ||
| zfs | ||
| zinject | ||
| zpool | ||
| zpool_influxdb | ||
| zstream | ||
| arc_summary | ||
| arcstat.in | ||
| dbufstat.in | ||
| fsck.zfs.in | ||
| Makefile.am | ||
| mount_zfs.c | ||
| zfs_ids_to_path.c | ||
| zgenhostid.c | ||
| zhack.c | ||
| zilstat.in | ||
| ztest.c | ||
| zvol_wait | ||