mirror_zfs/module/zfs
Patrick Mooney 8d42c98d95
dnode_sync is careless with range tree
Because dnode_sync_free_range() must drop dn_mtx during its processing,
using it as a callback to range_tree_vacate() is not safe.  No other
operations (besides destroy) are allowed once range_tree_vacate() has
begun, and dropping dn_mtx would leave a window open for another thread
to observe that invalid (and unsafe) state via dnode_block_freed().

Reviewed-by: Matthew Ahrens <mahrens@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Igor Kozhukhov <igor@dilos.org>
Signed-off-by: Patrick Mooney <pmooney@oxide.computer>
Closes #10708 
Closes #10823
2020-08-26 21:48:29 -07:00
..
abd.c
aggsum.c
arc.c Introduce limit on size of L2ARC headers 2020-08-25 14:33:36 -07:00
blkptr.c
bplist.c
bpobj.c
bptree.c
bqueue.c
btree.c
dataset_kstats.c
dbuf_stats.c
dbuf.c
ddt_zap.c
ddt.c
dmu_diff.c
dmu_object.c
dmu_objset.c
dmu_recv.c
dmu_redact.c
dmu_send.c
dmu_traverse.c
dmu_tx.c
dmu_zfetch.c
dmu.c Export dmu_offset_next() symbol 2020-08-25 08:34:41 -07:00
dnode_sync.c dnode_sync is careless with range tree 2020-08-26 21:48:29 -07:00
dnode.c
dsl_bookmark.c
dsl_crypt.c
dsl_dataset.c
dsl_deadlist.c
dsl_deleg.c
dsl_destroy.c
dsl_dir.c Always track temporary fses and snapshots for accounting 2020-08-26 21:38:27 -07:00
dsl_pool.c
dsl_prop.c
dsl_scan.c
dsl_synctask.c
dsl_userhold.c
edonr_zfs.c
fm.c
gzip.c
hkdf.c
lz4.c
lzjb.c
Makefile.in
metaslab.c
mmp.c
multilist.c
objlist.c
pathname.c
range_tree.c
refcount.c
rrwlock.c
sa.c Remove duplicate dnode.h include 2020-08-26 21:41:09 -07:00
sha256.c
skein_zfs.c
spa_boot.c
spa_checkpoint.c
spa_config.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
spa_errlog.c
spa_history.c
spa_log_spacemap.c
spa_misc.c
spa.c zpool: Change base URL for ZFS messages to openzfs-docs 2020-08-26 21:43:06 -07:00
space_map.c
space_reftree.c
THIRDPARTYLICENSE.cityhash
THIRDPARTYLICENSE.cityhash.descrip
txg.c
uberblock.c
unique.c
vdev_cache.c
vdev_indirect_births.c
vdev_indirect_mapping.c
vdev_indirect.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
vdev_initialize.c
vdev_label.c
vdev_mirror.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
vdev_missing.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
vdev_queue.c
vdev_raidz_math_aarch64_neon_common.h
vdev_raidz_math_aarch64_neon.c
vdev_raidz_math_aarch64_neonx2.c
vdev_raidz_math_avx2.c
vdev_raidz_math_avx512bw.c
vdev_raidz_math_avx512f.c
vdev_raidz_math_impl.h
vdev_raidz_math_powerpc_altivec_common.h
vdev_raidz_math_powerpc_altivec.c
vdev_raidz_math_scalar.c
vdev_raidz_math_sse2.c
vdev_raidz_math_ssse3.c
vdev_raidz_math.c FreeBSD: disable neon usage 2020-08-26 09:54:37 -07:00
vdev_raidz.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
vdev_rebuild.c
vdev_removal.c
vdev_root.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
vdev_trim.c
vdev.c Import vdev ashift optimization from FreeBSD 2020-08-21 12:53:17 -07:00
zap_leaf.c
zap_micro.c
zap.c
zcp_get.c
zcp_global.c
zcp_iter.c
zcp_set.c
zcp_synctask.c
zcp.c
zfeature.c
zfs_byteswap.c
zfs_fm.c
zfs_fuid.c
zfs_ioctl.c
zfs_log.c
zfs_onexit.c
zfs_quota.c
zfs_ratelimit.c
zfs_replay.c
zfs_rlock.c
zfs_sa.c
zil.c
zio_checksum.c
zio_compress.c Avoid symbol collision with in-kernel zstdlib 2020-08-24 12:20:41 -07:00
zio_inject.c
zio.c
zle.c
zrlock.c
zthr.c
zvol.c