Searched hist:"49086 aa35d987b78dbc3c9ec94814fe338e07164" (Results 1 – 2 of 2) sorted by relevance
/freebsd/sys/contrib/openzfs/include/sys/ |
H A D | dsl_scan.h | diff 49086aa35d987b78dbc3c9ec94814fe338e07164 Thu May 23 18:20:37 CEST 2024 Alexander Motin <mav@FreeBSD.org> Fix scn_queue races on very old pools
Code for pools before version 11 uses dmu_objset_find_dp() to scan for children datasets/clones. It calls enqueue_clones_cb() and enqueue_cb() callbacks in parallel from multiple taskq threads. It ends up bad for scan_ds_queue_insert(), corrupting scn_queue AVL-tree. Fix it by introducing a mutex to protect those two scan_ds_queue_insert() calls. All other calls are done from the sync thread and so serialized.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Brian Atkinson <batkinson@lanl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #16162 PR: 278414
|
/freebsd/sys/contrib/openzfs/module/zfs/ |
H A D | dsl_scan.c | diff 49086aa35d987b78dbc3c9ec94814fe338e07164 Thu May 23 18:20:37 CEST 2024 Alexander Motin <mav@FreeBSD.org> Fix scn_queue races on very old pools
Code for pools before version 11 uses dmu_objset_find_dp() to scan for children datasets/clones. It calls enqueue_clones_cb() and enqueue_cb() callbacks in parallel from multiple taskq threads. It ends up bad for scan_ds_queue_insert(), corrupting scn_queue AVL-tree. Fix it by introducing a mutex to protect those two scan_ds_queue_insert() calls. All other calls are done from the sync thread and so serialized.
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Brian Atkinson <batkinson@lanl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #16162 PR: 278414
|