[Ocfs2-devel] [PATCH] ocfs2: Provide the ocfs2_dlm_lvb_valid() stack API. v2 stack API.

Mark Fasheh mfasheh at suse.com
Fri Jun 19 16:02:58 PDT 2009


On Fri, Jun 19, 2009 at 03:40:47PM -0700, Joel Becker wrote:
> Changes from v1:
> - I totally failed to use the API in dlmglue.c!
> 
> The Lock Value Block (LVB) of a DLM lock can be lost when nodes die and
> the DLM cannot reconstruct its state.  Clients of the DLM need to know
> this.
> 
> ocfs2's internal DLM, o2dlm, explicitly zeroes out the LVB when it loses
> track of the state.  This is not a standard behavior, but ocfs2 has
> always relied on it.  Thus, an o2dlm LVB is always "valid".
> 
> ocfs2 now supports both o2dlm and fs/dlm via the stack glue.  When
> fs/dlm loses track of an LVBs state, it sets a flag
> (DLM_SBF_VALNOTVALID) on the Lock Status Block (LKSB).  The contents of
> the LVB may be garbage or merely stale.
> 
> ocfs2 doesn't want to try to guess at the validity of the stale LVB.
> Instead, it should be checking the VALNOTVALID flag.  As this is the
> 'standard' way of treating LVBs, we will promote this behavior.
> 
> We add a stack glue API ocfs2_dlm_lvb_valid().  It returns non-zero when
> the LVB is valid.  o2dlm will always return valid, while fs/dlm will
> check VALNOTVALID.
> 
> Signed-off-by: Joel Becker <joel.becker at oracle.com>

Looks great!

Acked-by: Mark Fasheh <mfasheh at suse.com>

--
Mark Fasheh



More information about the Ocfs2-devel mailing list