Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
xfs: stop the sync worker before xfs_unmountfs
Cancel work of the xfs_sync_worker before teardown of the log in xfs_unmountfs. This prevents occasional crashes on unmount like so: PID: 21602 TASK: ee9df060 CPU: 0 COMMAND: "kworker/0:3" #0 [c5377d28] crash_kexec at c0292c94 #1 [c5377d80] oops_end at c07090c2 #2 [c5377d98] no_context at c06f614e #3 [c5377dbc] __bad_area_nosemaphore at c06f6281 #4 [c5377df4] bad_area_nosemaphore at c06f629b #5 [c5377e00] do_page_fault at c070b0cb torvalds#6 [c5377e7c] error_code (via page_fault) at c070892c EAX: f300c6a8 EBX: f300c6a8 ECX: 000000c0 EDX: 000000c0 EBP: c5377ed0 DS: 007b ESI: 00000000 ES: 007b EDI: 00000001 GS: ffffad20 CS: 0060 EIP: c0481ad0 ERR: ffffffff EFLAGS: 00010246 torvalds#7 [c5377eb0] atomic64_read_cx8 at c0481ad0 torvalds#8 [c5377ebc] xlog_assign_tail_lsn_locked at f7cc7c6e [xfs] torvalds#9 [c5377ed4] xfs_trans_ail_delete_bulk at f7ccd520 [xfs] torvalds#10 [c5377f0c] xfs_buf_iodone at f7ccb602 [xfs] torvalds#11 [c5377f24] xfs_buf_do_callbacks at f7cca524 [xfs] torvalds#12 [c5377f30] xfs_buf_iodone_callbacks at f7cca5da [xfs] torvalds#13 [c5377f4c] xfs_buf_iodone_work at f7c718d0 [xfs] torvalds#14 [c5377f58] process_one_work at c024ee4c torvalds#15 [c5377f98] worker_thread at c024f43d torvalds#16 [c5377fb] kthread at c025326b torvalds#17 [c5377fe8] kernel_thread_helper at c070e834 PID: 26653 TASK: e79143b0 CPU: 3 COMMAND: "umount" #0 [cde0fda0] __schedule at c0706595 #1 [cde0fe28] schedule at c0706b89 #2 [cde0fe30] schedule_timeout at c0705600 #3 [cde0fe94] __down_common at c0706098 #4 [cde0fec8] __down at c0706122 #5 [cde0fed0] down at c025936f torvalds#6 [cde0fee0] xfs_buf_lock at f7c7131d [xfs] torvalds#7 [cde0ff00] xfs_freesb at f7cc2236 [xfs] torvalds#8 [cde0ff10] xfs_fs_put_super at f7c80f21 [xfs] torvalds#9 [cde0ff1c] generic_shutdown_super at c0333d7a torvalds#10 [cde0ff38] kill_block_super at c0333e0f torvalds#11 [cde0ff48] deactivate_locked_super at c0334218 torvalds#12 [cde0ff58] deactivate_super at c033495d torvalds#13 [cde0ff68] mntput_no_expire at c034bc13 torvalds#14 [cde0ff7c] sys_umount at c034cc69 torvalds#15 [cde0ffa0] sys_oldumount at c034ccd4 torvalds#16 [cde0ffb0] system_call at c0707e66 commit 11159a0 added this to xfs_log_unmount and needs to be cleaned up at a later date. Signed-off-by: Ben Myers <[email protected]> Reviewed-by: Dave Chinner <[email protected]> Reviewed-by: Mark Tinguely <[email protected]>
- Loading branch information