Filesystem use a seperate waitqueue for do_sync_work() to avoid a potential deadlock
Issue
- The
umount
task can be blocked indefinitely with the following call trace
INFO: task umount:3880 blocked for more than 120 seconds.
Not tainted 2.6.32-431.el6.x86_64 #1
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
umount D 0000000000000001 0 3880 3368 0x00000080
ffff88019fbe7bb8 0000000000000082 0000000000000000 ffffffff81068ff5
ffff88019fbe7b28 ffff88023cea3538 ffff8800283968a8 ffff880028396840
ffff88023ac81ab8 ffff88019fbe7fd8 000000000000fbc8 ffff88023ac81ab8
Call Trace:
[<ffffffff81068ff5>] ? enqueue_entity+0x125/0x450
[<ffffffff815287b5>] schedule_timeout+0x215/0x2e0
[<ffffffff81528433>] wait_for_common+0x123/0x180
[<ffffffff81065df0>] ? default_wake_function+0x0/0x20
[<ffffffff81137000>] ? lru_add_drain_per_cpu+0x0/0x10
[<ffffffff8152854d>] wait_for_completion+0x1d/0x20
[<ffffffff81095937>] flush_work+0x77/0xc0
[<ffffffff810951a0>] ? wq_barrier_func+0x0/0x20
[<ffffffff81095ab3>] schedule_on_each_cpu+0x133/0x180
[<ffffffff811be5c0>] ? invalidate_bh_lru+0x0/0x50
[<ffffffff81136135>] lru_add_drain_all+0x15/0x20
[<ffffffff811bf0ca>] invalidate_bdev+0x2a/0x50
[<ffffffffa048a66b>] ext4_put_super+0x1bb/0x370 [ext4]
[<ffffffff8118b24b>] generic_shutdown_super+0x5b/0xe0
[<ffffffff8118b301>] kill_block_super+0x31/0x50
[<ffffffff8118bad7>] deactivate_super+0x57/0x80
[<ffffffff811aaaaf>] mntput_no_expire+0xbf/0x110
[<ffffffff811ab5fb>] sys_umount+0x7b/0x3a0
[<ffffffff8100b072>] system_call_fastpath+0x16/0x1b
Environment
- Red Hat Enterprise Linux 6
- kernel-2.6.32-431.el6
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.