[Ocfs2-devel] Ocfs2-devel Digest, Vol 167, Issue 20
Guozhonghua
guozhonghua at h3c.com
Fri Jan 12 19:04:11 PST 2018
> Message: 1
> Date: Fri, 12 Jan 2018 06:15:01 +0000
> From: Shichangkuo <shi.changkuo at h3c.com>
> Subject: Re: [Ocfs2-devel] [Ocfs2-dev] BUG: deadlock with umount and
> ocfs2 workqueue triggered by ocfs2rec thread
> To: Joseph Qi <jiangqi903 at gmail.com>, "zren at suse.com" <zren at suse.com>,
> "jack at suse.cz" <jack at suse.cz>
> Cc: "ocfs2-devel at oss.oracle.com" <ocfs2-devel at oss.oracle.com>
> Message-ID:
> <D1E4D02760513D4B90DC3B40FF32AF35E22EC513 at H3CMLB14-EX.srv.huawe
> i-3com.com>
>
> Content-Type: text/plain; charset="gb2312"
>
> Hi Joseph
> Thanks for replying.
> Umount will flush the ocfs2 workqueue in function
> ocfs2_truncate_log_shutdown and journal recovery is one work of ocfs2 wq.
>
> Thanks
> Changkuo
>
Umount
mngput
cleanup_mnt
deactivate_super: down_write the rw_semaphore: down_write(&s->s_umount)
deactivate_locked_super
kill_sb: kill_block_super
generic_shutdown_super
put_super : ocfs2_put_supe
ocfs2_dismount_volume
ocfs2_truncate_log_shutdown
flush_workqueue(osb->ocfs2_wq);
ocfs2_finish_quota_recovery
down_read(&sb->s_umount);
Here retry down_read rw_semaphore; down read while holding write? Try rw_semaphore twice, dead lock ?
The flush work queue of ocfs2_wq will be blocked, so as the umount ops.
Thanks.
More information about the Ocfs2-devel
mailing list