aboutsummaryrefslogtreecommitdiffstats
path: root/mm/vmalloc.c
diff options
context:
space:
mode:
authorJan Kara <[email protected]>2025-04-24 13:45:13 +0000
committerAndrew Morton <[email protected]>2025-05-08 06:39:40 +0000
commitfcaf3b2683b05a9684acdebda706a12025a6927a (patch)
tree3a89a9d4a9caf09d8dc4528ea03bf60fac45a6c5 /mm/vmalloc.c
parentocfs2: implement handshaking with ocfs2 recovery thread (diff)
downloadkernel-fcaf3b2683b05a9684acdebda706a12025a6927a.tar.gz
kernel-fcaf3b2683b05a9684acdebda706a12025a6927a.zip
ocfs2: stop quota recovery before disabling quotas
Currently quota recovery is synchronized with unmount using sb->s_umount semaphore. That is however prone to deadlocks because flush_workqueue(osb->ocfs2_wq) called from umount code can wait for quota recovery to complete while ocfs2_finish_quota_recovery() waits for sb->s_umount semaphore. Grabbing of sb->s_umount semaphore in ocfs2_finish_quota_recovery() is only needed to protect that function from disabling of quotas from ocfs2_dismount_volume(). Handle this problem by disabling quota recovery early during unmount in ocfs2_dismount_volume() instead so that we can drop acquisition of sb->s_umount from ocfs2_finish_quota_recovery(). Link: https://lkml.kernel.org/r/[email protected] Fixes: 5f530de63cfc ("ocfs2: Use s_umount for quota recovery protection") Signed-off-by: Jan Kara <[email protected]> Reported-by: Shichangkuo <[email protected]> Reported-by: Murad Masimov <[email protected]> Reviewed-by: Heming Zhao <[email protected]> Tested-by: Heming Zhao <[email protected]> Acked-by: Joseph Qi <[email protected]> Cc: Changwei Ge <[email protected]> Cc: Joel Becker <[email protected]> Cc: Jun Piao <[email protected]> Cc: Junxiao Bi <[email protected]> Cc: Mark Fasheh <[email protected]> Cc: <[email protected]> Signed-off-by: Andrew Morton <[email protected]>
Diffstat (limited to 'mm/vmalloc.c')
0 files changed, 0 insertions, 0 deletions