On Wed, May 8, 2024 at 2:31 AM <linan666@xxxxxxxxxxxxxxx> wrote: > > From: Li Nan <linan122@xxxxxxxxxx> > > The deletion of safemode_timer in mddev_suspend() is redundant and > potentially harmful now. If timer is about to be woken up but gets > deleted, 'in_sync' will remain 0 until the next write, causing array > to stay in the 'active' state instead of transitioning to 'clean'. > > Commit 0d9f4f135eb6 ("MD: Add del_timer_sync to mddev_suspend (fix > nasty panic))" introduced this deletion for dm, because if timer fired > after dm is destroyed, the resource which the timer depends on might > have been freed. > > However, commit 0dd84b319352 ("md: call __md_stop_writes in md_stop") > added __md_stop_writes() to md_stop(), which is called before freeing > resource. Timer is deleted in __md_stop_writes(), and the origin issue > is resolved. Therefore, delete safemode_timer can be removed safely now. > > Signed-off-by: Li Nan <linan122@xxxxxxxxxx> Applied to md-6.11. Thanks! Song