[Ocfs2-devel] [patch 05/15] ocfs2/dlm: fix race between dispatched_work and dlm_lockres_grab_inflight_worker

Mark Fasheh mfasheh at suse.de
Wed Dec 17 10:31:36 PST 2014


On Mon, Dec 15, 2014 at 02:51:03PM -0800, Andrew Morton wrote:
> From: Joseph Qi <joseph.qi at huawei.com>
> Subject: ocfs2/dlm: fix race between dispatched_work and dlm_lockres_grab_inflight_worker
> 
> ac4fef4d23ed ("ocfs2/dlm: do not purge lockres that is queued for assert
> master") may have the following possible race case:
> 
> dlm_dispatch_assert_master       dlm_wq
> ========================================================================
> queue_work(dlm->quedlm_worker,
> 	&dlm->dispatched_work);
>                                  dispatch work,
> 				 dlm_lockres_drop_inflight_worker
> 				 *BUG_ON(res->inflight_assert_workers == 0)*
> dlm_lockres_grab_inflight_worker
> inflight_assert_workers++
> 
> So ensure inflight_assert_workers to be increased first.

Good catch, thank you Joseph.

Reviewed-by: Mark Fasheh <mfasheh at suse.de>
	--Mark

--
Mark Fasheh



More information about the Ocfs2-devel mailing list