From 7fe33b58df7ca96484a5016b7c9a76fee1f9ddad Mon Sep 17 00:00:00 2001 From: sara hartse Date: Tue, 12 Feb 2019 16:37:13 -0800 Subject: [PATCH] Delay injection can cause indefinitely hung zios If we hit the (NSEC_TO_TICK(diff) == 0) condition in zio_delay_interrupt, zio_interrupt is never called and the zio does not progress. Signed-off-by: sara hartse --- module/zfs/zio.c | 1 + 1 file changed, 1 insertion(+) diff --git a/module/zfs/zio.c b/module/zfs/zio.c index 9ca53490e2c7..dcbbd8ac33cd 100644 --- a/module/zfs/zio.c +++ b/module/zfs/zio.c @@ -1833,6 +1833,7 @@ zio_delay_interrupt(zio_t *zio) if (NSEC_TO_TICK(diff) == 0) { /* Our delay is less than a jiffy - just spin */ zfs_sleep_until(zio->io_target_timestamp); + zio_interrupt(zio); } else { /* * Use taskq_dispatch_delay() in the place of