From a0adff06b61f778d6198587c940aad54329c909e Mon Sep 17 00:00:00 2001 From: Alexander Motin Date: Wed, 26 Nov 2025 12:36:07 -0500 Subject: [PATCH] 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. Signed-off-by: Alexander Motin --- include/sys/zio_impl.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/sys/zio_impl.h b/include/sys/zio_impl.h index 6b751eade0ab..42147adaf1a0 100644 --- a/include/sys/zio_impl.h +++ b/include/sys/zio_impl.h @@ -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)