summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepanshu Kartikey <kartikey406@gmail.com>2026-09-06 20:16:29 +0530
committerCarlos Maiolino <cem@kernel.org>2026-09-10 16:43:48 +0200
commite240919ca727776f16a468d3d90686dc82cfe9cb (patch)
tree7fb87c7ec508e6a6b36984a4b385d4da017d38a2
parent50ba24ccb9a94f61c707209442ca23d98c815052 (diff)
downloadlinux-next-e240919ca727776f16a468d3d90686dc82cfe9cb.tar.gz
linux-next-e240919ca727776f16a468d3d90686dc82cfe9cb.zip
xfs: take hm->lock in xfs_ioc_health_monitor() before insert
__xfs_healthmon_insert() asserts that hm->lock is held (lockdep_assert_held), but xfs_ioc_health_monitor() called it right after allocating hm, before ever taking the lock, triggering a lockdep warning. Take hm->lock around the call. Fixes: b3a289a2a9397 ("xfs: create event queuing, formatting, and discovery infrastructure") Reported-by: syzbot+ccdf3469f5f653bff7ac@syzkaller.appspotmail.com Closes: https://syzkaller.appspot.com/bug?extid=ccdf3469f5f653bff7ac Signed-off-by: Deepanshu Kartikey <kartikey406@gmail.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org> Signed-off-by: Carlos Maiolino <cem@kernel.org>
-rw-r--r--fs/xfs/xfs_healthmon.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/xfs/xfs_healthmon.c b/fs/xfs/xfs_healthmon.c
index b57fa033cec4..c3749675ef19 100644
--- a/fs/xfs/xfs_healthmon.c
+++ b/fs/xfs/xfs_healthmon.c
@@ -1223,7 +1223,9 @@ xfs_ioc_health_monitor(
}
running_event->type = XFS_HEALTHMON_RUNNING;
running_event->domain = XFS_HEALTHMON_MOUNT;
+ mutex_lock(&hm->lock);
__xfs_healthmon_insert(hm, INSERT_HEAD, running_event);
+ mutex_unlock(&hm->lock);
/*
* Preallocate the unmount event so that we can't fail to notify the