[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