[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