Re: [PATCH] f2fs: avoid the deadlock case when stopping discard thread

From: Hillf Danton
Date: Thu Mar 21 2024 - 18:42:57 EST


On Tue, 19 Mar 2024 17:14:42 -0700 Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
> f2fs_ioc_shutdown(F2FS_GOING_DOWN_NOSYNC) issue_discard_thread
> - mnt_want_write_file()
> - sb_start_write(SB_FREEZE_WRITE)
__sb_start_write()
percpu_down_read()
> - sb_start_intwrite(SB_FREEZE_FS);
__sb_start_write()
percpu_down_read()

Given lock acquirers for read on both sides, wtf deadlock are you fixing?

> - f2fs_stop_checkpoint(sbi, false, : waiting
> STOP_CP_REASON_SHUTDOWN);
> - f2fs_stop_discard_thread(sbi);
> - kthread_stop()
> : waiting
>
> - mnt_drop_write_file(filp);

More important, feel free to add in spin.

Reported-by: "Light Hsieh (謝明燈)" <Light.Hsieh@xxxxxxxxxxxx>