ZIO: ZIO_STAGE_DDT_WRITE is a blocking stage

ddt_lookup() in zio_ddt_write() might require synchronous DDT ZAP
read.  Running it from interrupt taskq might lead to deadlock.
Inclusion of ZIO_STAGE_DDT_WRITE into ZIO_BLOCKING_STAGES should
hopefully fix that, even though I am not sure how I got there.

Reviewed-by: Brian Behlendorf <[email protected]>
Signed-off-by: Alexander Motin <[email protected]>
Closes #17981
This commit is contained in:
Alexander Motin authored and GitHub committed 2025-12-10 19:51:53 -05:00
1 parent d393166c54
commit 20f09eae42
1 file changed
+2 -1
+2 -1
View File
@@ -278,7 +278,8 @@ enum zio_stage {
ZIO_VDEV_IO_STAGES)
#define ZIO_BLOCKING_STAGES \
(ZIO_STAGE_DVA_ALLOCATE | \
(ZIO_STAGE_DDT_WRITE | \
ZIO_STAGE_DVA_ALLOCATE | \
ZIO_STAGE_DVA_CLAIM | \
ZIO_STAGE_VDEV_IO_START)