[Ocfs2-devel] [patch 4/8] ocfs2/dlm: do not purge lockres that is queued for assert master
Andrew Morton
akpm at linux-foundation.org
Fri Jun 20 15:33:46 PDT 2014
On Mon, 16 Jun 2014 09:26:53 +0800 Xue jiufei <xuejiufei at huawei.com> wrote:
> >> spin_unlock(&res->spinlock);
> >> diff -puN fs/ocfs2/dlm/dlmthread.c~ocfs2-dlm-do-not-purge-lockres-that-is-queued-for-assert-master fs/ocfs2/dlm/dlmthread.c
> >> --- a/fs/ocfs2/dlm/dlmthread.c~ocfs2-dlm-do-not-purge-lockres-that-is-queued-for-assert-master
> >> +++ a/fs/ocfs2/dlm/dlmthread.c
> >> @@ -259,11 +259,14 @@ static void dlm_run_purge_list(struct dl
> >> * refs on it. */
> >> unused = __dlm_lockres_unused(lockres);
> >> if (!unused ||
> >> - (lockres->state & DLM_LOCK_RES_MIGRATING)) {
> >> + (lockres->state & DLM_LOCK_RES_MIGRATING) ||
> >> + (lockres->inflight_assert_workers != 0)) {
> >
> > If there's any assert master message we will halt purging *all* lock
> > resources. That seems extreme to me :/
> >
> Not halt purging *all* lock resource, when one lockres is queued for
> master assert, it will be moved to the tail of the purge list, so
> dlm_thread can keep purging other lock resources.
Where are we up to with this one?
Thanks.
More information about the Ocfs2-devel
mailing list