> From: Jens Axboe <axboe@xxxxxxxxx> > Sent: Tuesday, December 14, 2021 8:00 AM > ... > We can probably get by with doing just that, and just ignore if a delayed > work timer is already running. > > Dexuan, can you try this one? > > diff --git a/block/blk-core.c b/block/blk-core.c > index 1378d084c770..c1833f95cb97 100644 > --- a/block/blk-core.c > +++ b/block/blk-core.c > @@ -1484,6 +1484,8 @@ EXPORT_SYMBOL(kblockd_schedule_work); > int kblockd_mod_delayed_work_on(int cpu, struct delayed_work *dwork, > unsigned long delay) > { > + if (!delay) > + return queue_work_on(cpu, kblockd_workqueue, &dwork->work); > return mod_delayed_work_on(cpu, kblockd_workqueue, dwork, delay); > } > EXPORT_SYMBOL(kblockd_mod_delayed_work_on); > > -- > Jens Axboe According to my test, this patch works as efficiently as the v1. Thanks Jens! Thanks, -- Dexuan