Hi Guozhonghua,

It seems that deadlock could be reproduced easily, right? Sharing the
lock with VFS-layer probably is risky, and introducing a new lock for
"quota_recovery" sounds good. Could you post a patch to fix this
problem?

thanks,
Jun

On 2018/1/13 11:04, Guozhonghua wrote:
> 
>> Message: 1
>> Date: Fri, 12 Jan 2018 06:15:01 +0000
>> From: Shichangkuo <shi.chang...@h3c.com>
>> Subject: Re: [Ocfs2-devel] [Ocfs2-dev] BUG: deadlock with umount and
>>      ocfs2 workqueue triggered by ocfs2rec thread
>> To: Joseph Qi <jiangqi...@gmail.com>, "z...@suse.com" <z...@suse.com>,
>>      "j...@suse.cz" <j...@suse.cz>
>> Cc: "ocfs2-devel@oss.oracle.com" <ocfs2-devel@oss.oracle.com>
>> Message-ID:
>>      <d1e4d02760513d4b90dc3b40ff32af35e22ec...@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. 
> 
> 
> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel@oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/ocfs2-devel
> 

_______________________________________________
Ocfs2-devel mailing list
Ocfs2-devel@oss.oracle.com
https://oss.oracle.com/mailman/listinfo/ocfs2-devel

Reply via email to