[Ocfs2-devel] [PATCH 3/6] ocfs2/dlm: Add missing
dlm_lockres_put()s
Joel Becker
Joel.Becker at oracle.com
Sun Mar 2 18:15:22 PST 2008
On Sat, Mar 01, 2008 at 02:04:22PM -0800, Sunil Mushran wrote:
> dlm_master_request_handler() forgot to put a lockres when
> dlm_assert_master_worker() failed or was skipped.
>
> Signed-off-by: Sunil Mushran <sunil.mushran at oracle.com>
Signed-off-by: Joel Becker <joel.becker at oracle.com>
> ---
> fs/ocfs2/dlm/dlmmaster.c | 11 ++++++++++-
> 1 files changed, 10 insertions(+), 1 deletions(-)
>
> diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c
> index eadf9bf..b6629bb 100644
> --- a/fs/ocfs2/dlm/dlmmaster.c
> +++ b/fs/ocfs2/dlm/dlmmaster.c
> @@ -1663,7 +1663,12 @@ way_up_top:
> dlm_put_mle(tmpmle);
> }
> send_response:
> -
> + /*
> + * __dlm_lookup_lockres() grabbed a reference to this lockres.
> + * The reference is released by dlm_assert_master_worker() under
> + * the call to dlm_dispatch_assert_master(). If
> + * dlm_assert_master_worker() isn't called, we drop it here.
> + */
> if (dispatch_assert) {
> if (response != DLM_MASTER_RESP_YES)
> mlog(ML_ERROR, "invalid response %d\n", response);
> @@ -1678,7 +1683,11 @@ send_response:
> if (ret < 0) {
> mlog(ML_ERROR, "failed to dispatch assert master work\n");
> response = DLM_MASTER_RESP_ERROR;
> + dlm_lockres_put(res);
> }
> + } else {
> + if (res)
> + dlm_lockres_put(res);
> }
>
> dlm_put(dlm);
> --
> 1.5.3.6
>
>
> _______________________________________________
> Ocfs2-devel mailing list
> Ocfs2-devel at oss.oracle.com
> http://oss.oracle.com/mailman/listinfo/ocfs2-devel
--
"Anything that is too stupid to be spoken is sung."
- Voltaire
Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127
More information about the Ocfs2-devel
mailing list