Messages in this thread Patch in this message |  | | From | Yuto Ohnuki <> | | Subject | [PATCH v3 1/4] xfs: stop reclaim before pushing AIL during unmount | | Date | Sun, 8 Mar 2026 18:28:06 +0000 |
| |
The unmount sequence in xfs_unmount_flush_inodes() pushed the AIL while background reclaim and inodegc are still running. This creates a race where reclaim can free inodes and their log items while the AIL push is still referencing them.
Reorder xfs_unmount_flush_inodes() to cancel background reclaim and stop inodegc before pushing the AIL, so that background reclaim and inodegc are no longer running while the AIL is pushed.
Reported-by: syzbot+652af2b3c5569c4ab63c@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=652af2b3c5569c4ab63c Fixes: 90c60e164012 ("xfs: xfs_iflush() is no longer necessary") Cc: <stable@vger.kernel.org> # v5.9 Signed-off-by: Yuto Ohnuki <ytohnuki@amazon.com> --- fs/xfs/xfs_mount.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 9c295abd0a0a..786e1fc720e5 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -621,9 +621,9 @@ xfs_unmount_flush_inodes( xfs_set_unmounting(mp); - xfs_ail_push_all_sync(mp->m_ail); - xfs_inodegc_stop(mp); cancel_delayed_work_sync(&mp->m_reclaim_work); + xfs_inodegc_stop(mp); + xfs_ail_push_all_sync(mp->m_ail); xfs_reclaim_inodes(mp); xfs_health_unmount(mp); xfs_healthmon_unmount(mp); -- 2.50.1
Amazon Web Services EMEA SARL, 38 avenue John F. Kennedy, L-1855 Luxembourg, R.C.S. Luxembourg B186284
Amazon Web Services EMEA SARL, Irish Branch, One Burlington Plaza, Burlington Road, Dublin 4, Ireland, branch registration number 908705
|  |